Function at 0x401000
Capabilities:
Query environment variable
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x278
push esi
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x110], 0
mov dword [ebp - 8], 0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x130], 0x40c060
mov byte [ebp - 0x138], 0
push 0x40c090
call dword [sym.imp.MSVCRTD.dll_getenv]
add esp, 4
test eax, eax
je 0x401084
mov byte [0x40f0b2], 1
push 0x40c0a8
call dword [sym.imp.MSVCRTD.dll_printf]
add esp, 4
lea ecx, [ebp - 8]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00401e5b
add esp, 0xc
mov ecx, dword [ebp + 8]
lea edx, [ecx*4 + 4]
push edx
call fcn.00402ad6
add esp, 4
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x25c], 0
jmp 0x4010cc
mov eax, dword [ebp - 0x25c]
add eax, 1
mov dword [ebp - 0x25c], eax
mov ecx, dword [ebp + 8]
add ecx, 1
cmp dword [ebp - 0x25c], ecx
jge 0x4010f7
mov edx, dword [ebp - 0x25c]
mov eax, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x25c]
mov esi, dword [ebp + 0xc]
mov ecx, dword [esi + ecx*4]
mov dword [eax + edx*4], ecx
jmp 0x4010bd
mov edx, dword [ebp - 0x14c]
push edx
push 0x104
lea eax, [ebp - 0x10c]
push eax
push 0x104
lea ecx, [ebp - 0x250]
push ecx
lea edx, [ebp + 0xc]
push edx
lea eax, [ebp + 8]
push eax
call fcn.00403dda
add esp, 0x1c
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x254], 0
xor ecx, ecx
mov cl, byte [0x40f0b2]
test ecx, ecx
je 0x401157
call fcn.00404414
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x140], edx
lea edx, [ebp - 0x258]
push edx
lea eax, [ebp - 0x10c]
push eax
call fcn.00404066
add esp, 8
and eax, 0xff
test eax, eax
jne 0x40117e
push 6
call dword [sym.imp.MSVCRTD.dll_exit]
xor ecx, ecx
mov cl, byte [0x40f0b2]
test ecx, ecx
je 0x4011cc
call fcn.00404414
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], edx
mov edx, dword [ebp - 0x118]
sub edx, dword [ebp - 0x144]
mov eax, dword [ebp - 0x114]
sbb eax, dword [ebp - 0x140]
push eax
push edx
call fcn.00404462
add esp, 8
push eax
push 0x40c0c8
call dword [sym.imp.MSVCRTD.dll_printf]
add esp, 8
mov dword [0x40f0a8], 0x40c0ec
mov ecx, dword [ebp + 0xc]
add ecx, 4
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 8]
sub edx, 1
mov dword [ebp + 8], edx
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebp + 8]
push ecx
call fcn.00402f99
add esp, 8
call fcn.0040315c
and eax, 0xff
test eax, eax
jne 0x40120e
push 1
call dword [sym.imp.MSVCRTD.dll_exit]
push 0x40c0f4
call dword [sym.imp.MSVCRTD.dll_getenv]
add esp, 4
mov dword [ebp - 0x110], eax
cmp dword [ebp - 0x110], 0
jne 0x401235
mov dword [ebp - 0x110], 0x40c100
lea edx, [ebp - 0x120]
push edx
lea eax, [ebp - 0x134]
push eax
lea ecx, [ebp - 0x148]
push ecx
lea edx, [ebp + 0xc]
push edx
lea eax, [ebp + 8]
push eax
call fcn.004023da
add esp, 0x14
and eax, 0xff
test eax, eax
jne 0x401270
mov ecx, dword [ebp - 0x120]
push ecx
call dword [sym.imp.MSVCRTD.dll_exit]
cmp dword [ebp - 0x148], 0
je 0x401288
mov edx, dword [ebp - 0x148]
push edx
call fcn.00401d47
add esp, 4
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x148]
push edx
mov eax, dword [ebp - 0x134]
push eax
call fcn.00403343
add esp, 0x10
call fcn.00403463
push 0x40c104
call fcn.00404889
add esp, 4
xor ecx, ecx
mov cl, byte [0x40f0b2]
test ecx, ecx
je 0x4012d5
call fcn.00404414
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x140], edx
lea edx, [ebp - 0x258]
push edx
lea eax, [ebp - 0x11c]
push eax
lea ecx, [ebp - 0x13c]
push ecx
call fcn.004029c1
add esp, 0xc
and eax, 0xff
test eax, eax
jne 0x401312
push 1
push 0x40c118
call fcn.004044bb
add esp, 8
push 1
call dword [sym.imp.MSVCRTD.dll_exit]
xor edx, edx
mov dl, byte [0x40f0b0]
test edx, edx
jne 0x40132d
xor eax, eax
mov al, byte [0x40f0b1]
test eax, eax
je 0x4013ae
mov ecx, dword [ebp - 0x11c]
push ecx
call fcn.00403477
add esp, 4
mov edx, dword [ebp - 0x11c]
push edx
mov eax, dword [ebp - 0x11c]
mov ecx, dword [eax]
call dword [ecx + 0x3c]
test eax, eax
je 0x401366
mov edx, dword [ebp - 0x11c]
push edx
call fcn.0040452b
add esp, 4
jmp 0x401994
xor eax, eax
mov al, byte [0x40f0b0]
test eax, eax
je 0x40138a
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x130], 0
jmp 0x401994
xor ecx, ecx
mov cl, byte [0x40f0b1]
test ecx, ecx
je 0x4013ae
push 0x40c144
mov edx, dword [sym.imp.MSVCRTD.dll__iob]
add edx, 0x40
push edx
call dword [sym.imp.MSVCRTD.dll_fprintf]
add esp, 8
cmp dword [ebp - 0x148], 0
jne 0x4013d4
cmp dword [ebp - 0x134], 0
jne 0x4013d4
call fcn.004034df
mov dword [ebp - 0x130], 0
jmp 0x401994
call fcn.00403d6b
xor eax, eax
mov al, byte [0x40f0b2]
test eax, eax
je 0x401426
call fcn.00404414
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], edx
mov ecx, dword [ebp - 0x118]
sub ecx, dword [ebp - 0x144]
mov edx, dword [ebp - 0x114]
sbb edx, dword [ebp - 0x140]
push edx
push ecx
call fcn.00404462
add esp, 8
push eax
push 0x40c148
call dword [sym.imp.MSVCRTD.dll_printf]
add esp, 8
xor eax, eax
mov al, byte [0x40f0b2]
test eax, eax
je 0x4014c7
mov dword [ebp - 0x260], 0
cmp dword [ebp - 0x134], 0
je 0x401456
mov ecx, dword [ebp - 0x134]
mov dword [ebp - 0x278], ecx
jmp 0x401460
mov dword [ebp - 0x278], 0x40f0c4
mov edx, dword [ebp - 0x278]
push edx
push 0x40c16c
call dword [sym.imp.MSVCRTD.dll_printf]
add esp, 8
mov eax, dword [ebp + 8]
push eax
push 0x40c180
call dword [sym.imp.MSVCRTD.dll_printf]
add esp, 8
jmp 0x401498
mov ecx, dword [ebp - 0x260]
add ecx, 1
mov dword [ebp - 0x260], ecx
mov edx, dword [ebp - 0x260]
cmp edx, dword [ebp + 8]
jge 0x4014c7
mov eax, dword [ebp - 0x260]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4]
push edx
mov eax, dword [ebp - 0x260]
push eax
push 0x40c194
call dword [sym.imp.MSVCRTD.dll_printf]
add esp, 0xc
jmp 0x401489
mov dword [ebp - 0x120], 1
cmp dword [ebp - 0x148], 0
je 0x401638
mov ecx, dword [ebp - 0x148]
push ecx
mov edx, dword [ebp - 0x11c]
push edx
call fcn.00402dc5
add esp, 8
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [ebp - 0x11c]
mov edx, dword [ecx]
call dword [edx + 0x3c]
test eax, eax
je 0x401524
mov eax, dword [ebp - 0x11c]
push eax
call fcn.0040452b
add esp, 4
jmp 0x401994
cmp dword [ebp - 0x12c], 0
jne 0x401592
mov dword [ebp - 0x264], 0x40c1ac
mov ecx, dword [ebp - 0x264]
push ecx
call sub.MSVCRTD.dll_strlen
add esp, 4
mov esi, eax
mov edx, dword [ebp - 0x148]
push edx
call sub.MSVCRTD.dll_strlen
add esp, 4
add esi, eax
push esi
call fcn.00402ad6
add esp, 4
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x148]
push eax
mov ecx, dword [ebp - 0x264]
push ecx
mov edx, dword [ebp - 0x130]
push edx
call dword [sym.imp.MSVCRTD.dll_sprintf]
add esp, 0xc
mov byte [ebp - 0x138], 1
jmp 0x401994
push 0
mov eax, dword [ebp - 0x12c]
push eax
mov ecx, dword [ebp - 0x11c]
push ecx
mov edx, dword [ebp - 0x11c]
mov eax, dword [edx]
call dword [eax + 0x2a4]
mov dword [ebp - 0x134], eax
cmp dword [ebp - 0x134], 0
jne 0x4015d3
mov ecx, dword [ebp - 0x11c]
push ecx
call fcn.0040452b
add esp, 4
jmp 0x401994
mov edx, dword [ebp - 0x134]
push edx
mov eax, dword [ebp - 0x11c]
push eax
call fcn.00402ccf
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x401610
mov ecx, dword [ebp - 0x11c]
push ecx
call fcn.0040452b
add esp, 4
mov dword [ebp - 0x130], 0x40c1e4
jmp 0x401994
mov edx, dword [ebp - 0x134]
push edx
mov eax, dword [ebp - 0x12c]
push eax
mov ecx, dword [ebp - 0x11c]
push ecx
mov edx, dword [ebp - 0x11c]
mov eax, dword [edx]
call dword [eax + 0x2a8]
jmp 0x401763
mov ecx, dword [ebp - 0x134]
push ecx
mov edx, dword [ebp - 0x11c]
push edx
call fcn.00402b0d
add esp, 8
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0
jne 0x4016c2
mov dword [ebp - 0x268], 0x40c218
mov eax, dword [ebp - 0x268]
push eax
call sub.MSVCRTD.dll_strlen
add esp, 4
mov esi, eax
mov ecx, dword [ebp - 0x134]
push ecx
call sub.MSVCRTD.dll_strlen
add esp, 4
add esi, eax
push esi
call fcn.00402ad6
add esp, 4
mov dword [ebp - 0x130], eax
mov edx, dword [ebp - 0x134]
push edx
mov eax, dword [ebp - 0x268]
push eax
mov ecx, dword [ebp - 0x130]
push ecx
call dword [sym.imp.MSVCRTD.dll_sprintf]
add esp, 0xc
mov byte [ebp - 0x138], 1
jmp 0x401994
push 0
mov edx, dword [ebp - 0x12c]
push edx
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [ebp - 0x11c]
mov edx, dword [ecx]
call dword [edx + 0x2a4]
mov dword [ebp - 0x134], eax
cmp dword [ebp - 0x134], 0
jne 0x401703
mov eax, dword [ebp - 0x11c]
push eax
call fcn.0040452b
add esp, 4
jmp 0x401994
mov ecx, dword [ebp - 0x134]
push ecx
mov edx, dword [ebp - 0x11c]
push edx
call fcn.00402ccf
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x401740
mov eax, dword [ebp - 0x11c]
push eax
call fcn.0040452b
add esp, 4
mov dword [ebp - 0x130], 0x40c238
jmp 0x401994
mov ecx, dword [ebp - 0x134]
push ecx
mov edx, dword [ebp - 0x12c]
push edx
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [ebp - 0x11c]
mov edx, dword [ecx]
call dword [edx + 0x2a8]
push 0x40c26c
push 0x40c284
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp - 0x11c]
push ecx
mov edx, dword [ebp - 0x11c]
mov eax, dword [edx]
call dword [eax + 0x1c4]
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x128], 0
jne 0x4017d2
mov ecx, dword [ebp - 0x11c]
push ecx
mov edx, dword [ebp - 0x11c]
mov eax, dword [edx]
call dword [eax + 0x3c]
test eax, eax
je 0x4017bc
mov ecx, dword [ebp - 0x11c]
push ecx
call fcn.0040452b
add esp, 4
jmp 0x4017cd
mov dword [ebp - 0x130], 0x40c28c
mov byte [ebp - 0x138], 1
jmp 0x401994
push 1
mov edx, dword [ebp - 0x128]
push edx
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp - 0x11c]
push ecx
mov edx, dword [ebp - 0x11c]
mov eax, dword [edx]
call dword [eax + 0x24]
mov dword [ebp - 0x270], eax
cmp dword [ebp - 0x270], 0
jne 0x401814
mov ecx, dword [ebp - 0x11c]
push ecx
call fcn.0040452b
add esp, 4
jmp 0x401994
push 0x40c2b8
push 0x40c2bc
mov edx, dword [ebp - 0x270]
push edx
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [ebp - 0x11c]
mov edx, dword [ecx]
call dword [edx + 0x7c]
push eax
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [ebp - 0x11c]
mov edx, dword [ecx]
call dword [edx + 0x84]
mov dword [ebp - 0x26c], eax
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [ebp - 0x11c]
mov edx, dword [ecx]
call dword [edx + 0x3c]
test eax, eax
je 0x40187d
mov eax, dword [ebp - 0x11c]
push eax
call fcn.0040452b
add esp, 4
jmp 0x401994
mov ecx, dword [ebp - 0x26c]
push ecx
mov edx, dword [ebp - 0x270]
push edx
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [ebp - 0x11c]
mov edx, dword [ecx]
call dword [edx + 0xc4]
add esp, 0xc
mov dword [ebp - 0x274], eax
mov eax, dword [ebp - 0x274]
and eax, 1
test eax, eax
jne 0x4018cc
mov dword [ebp - 0x130], 0x40c2cc
mov byte [ebp - 0x138], 1
jmp 0x401994
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp - 0x11c]
push eax
call fcn.00402c06
add esp, 0xc
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 0
jne 0x401906
mov ecx, dword [ebp - 0x11c]
push ecx
call fcn.0040452b
add esp, 4
jmp 0x401994
mov edx, dword [ebp - 0x124]
push edx
mov eax, dword [ebp - 0x128]
push eax
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp - 0x11c]
push edx
mov eax, dword [ebp - 0x11c]
mov ecx, dword [eax]
call dword [ecx + 0x234]
add esp, 0x10
mov edx, dword [ebp - 0x11c]
push edx
mov eax, dword [ebp - 0x11c]
mov ecx, dword [eax]
call dword [ecx + 0x3c]
test eax, eax
je 0x401957
mov edx, dword [ebp - 0x11c]
push edx
call fcn.0040452b
add esp, 4
jmp 0x401994
mov eax, dword [ebp - 0x13c]
push eax
mov ecx, dword [ebp - 0x13c]
mov edx, dword [ecx]
call dword [edx + 0x14]
test eax, eax
je 0x401980
mov dword [ebp - 0x130], 0x40c2e4
mov byte [ebp - 0x138], 1
jmp 0x401994
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x130], 0
mov eax, dword [ebp - 0x13c]
push eax
mov ecx, dword [ebp - 0x13c]
mov edx, dword [ecx]
call dword [edx + 0xc]
cmp dword [ebp - 0x130], 0
je 0x4019ce
cmp dword [0x40f0c0], 0
jne 0x4019ce
mov al, byte [ebp - 0x138]
push eax
mov ecx, dword [ebp - 0x130]
push ecx
call fcn.004044bb
add esp, 8
mov eax, dword [ebp - 0x120]
pop esi
mov esp, ebp
pop ebp
ret