# base: 401000
objdump -D --target=binary --architecture i386 $code
0: b8 cc 11 40 00 mov $0x4011cc,%eax
5: 83 3d cc 11 40 00 00 cmpl $0x0,0x4011cc
c: 74 16 je 0x24
e: 8b 10 mov (%eax),%edx
10: 85 d2 test %edx,%edx
12: 7d 06 jge 0x1a
14: 01 50 04 add %edx,0x4(%eax)
17: 83 c0 04 add $0x4,%eax
1a: ff 02 incl (%edx)
1c: 83 c0 04 add $0x4,%eax
1f: 83 38 00 cmpl $0x0,(%eax)
22: 75 ea jne 0xe
24: a1 48 11 40 00 mov 0x401148,%eax
29: ff d0 call *%eax ; GetCommandLineA
2b: 89 c3 mov %eax,%ebx
2d: 89 c7 mov %eax,%edi
2f: 31 c0 xor %eax,%eax
31: b9 f7 ff ff ff mov $0xfffffff7,%ecx
36: fc cld
37: f2 ae repnz scas %es:(%edi),%al
39: 89 f8 mov %edi,%eax
3b: 29 d8 sub %ebx,%eax
3d: 83 e1 fc and $0xfffffffc,%ecx
40: 01 cc add %ecx,%esp
42: be c3 11 40 00 mov $0x4011c3,%esi ; prepend 'perl -x '
47: 89 e7 mov %esp,%edi
49: b9 08 00 00 00 mov $0x8,%ecx
4e: f3 a4 rep movsb %ds:(%esi),%es:(%edi)
50: 89 de mov %ebx,%esi
52: 89 c1 mov %eax,%ecx
54: f3 a4 rep movsb %ds:(%esi),%es:(%edi)
56: 89 e3 mov %esp,%ebx
58: 83 ec 7c sub $0x7c,%esp
5b: b9 1b 00 00 00 mov $0x1b,%ecx
60: 89 e7 mov %esp,%edi
62: 31 c0 xor %eax,%eax
64: f3 ab rep stos %eax,%es:(%edi)
66: 89 5c 24 04 mov %ebx,0x4(%esp)
6a: c7 44 24 28 44 00 00 movl $0x44,0x28(%esp)
71: 00
72: 89 e0 mov %esp,%eax
74: 83 c0 28 add $0x28,%eax
77: 89 44 24 20 mov %eax,0x20(%esp)
7b: 83 c0 44 add $0x44,%eax
7e: 89 44 24 24 mov %eax,0x24(%esp)
82: a1 40 11 40 00 mov 0x401140,%eax
87: ff d0 call *%eax ; if (!CreateProcessA)
89: 21 c0 and %eax,%eax
8b: 75 04 jne 0x91
8d: 6a 64 push $0x64
8f: eb 25 jmp 0xb6 ; abnormal exit
91: 8b 44 24 44 mov 0x44(%esp),%eax ; else
95: 6a ff push $0xffffffff
97: 50 push %eax
98: a1 4c 11 40 00 mov 0x40114c,%eax
9d: ff d0 call *%eax ; if (!WaitForSingleObject)
9f: 21 c0 and %eax,%eax
a1: 74 04 je 0xa7
a3: 6a 65 push $0x65
a5: eb 0f jmp 0xb6 ; abnormal exit
a7: 8b 44 24 44 mov 0x44(%esp),%eax ; else
ab: 6a 66 push $0x66 ; exit with child code
ad: 54 push %esp
ae: 50 push %eax
af: a1 50 11 40 00 mov 0x401150,%eax
b4: ff d0 call *%eax ; GetExitCodeProcess
b6: a1 44 11 40 00 mov 0x401144,%eax
bb: ff d0 call *%eax ; ExitProcess