Function at 0x403dc8
Capabilities:
Terminate process

Disassembly:
mov eax, 0x40d6cf
call fcn.00404850
sub esp, 0x52c
mov eax, dword [0x410034]
push ebx
push esi
push edi
mov dword [ebp - 0x10], eax
call fcn.0040592d
lea ecx, [ebp - 0x4c4]
call fcn.004038b9
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
add ecx, 4
xor edi, edi
push ecx
dec eax
push eax
lea ecx, [ebp - 0x4c4]
mov dword [ebp - 4], edi
call fcn.00403b5c
lea ecx, [ebp - 0x4c4]
mov esi, eax
call fcn.004038e8
cmp esi, edi
je 0x403e3d
push 0x401930
call dword [sym.imp.MSVCR71.dll_printf]
cmp esi, edi
pop ecx
jge 0x403e37
push 0xffffffffffffffff
jmp 0x403ef1
push edi
jmp 0x403ef1
mov esi, dword [sym.imp.MSVCR71.dll_wcslen]
xor ebx, ebx
cmp dword [ebp - 0x4c0], edi
mov dword [ebp - 0x4e0], edi
mov dword [ebp - 0x4c8], edi
jbe 0x403eb4
mov eax, dword [ebp - 0x4c4]
push dword [eax + edi*4]
call esi
cmp eax, 4
pop ecx
jle 0x403eab
mov ecx, dword [ebp - 0x4c4]
mov ecx, dword [ecx + edi*4]
lea eax, [ecx + eax*2 - 8]
push 0x401fb8
push eax
call dword [sym.imp.MSVCR71.dll__wcsicmp]
test eax, eax
pop ecx
pop ecx
jne 0x403eab
lea eax, [ebp - 0x4e0]
push eax
push 0x3f
lea eax, [ebp - 0x90]
push eax
mov eax, dword [ebp - 0x4c4]
push dword [eax + edi*4]
call sub.mscoree.dll_GetRequestedRuntimeVersion
test eax, eax
jge 0x403ef7
inc edi
cmp edi, dword [ebp - 0x4c0]
jb 0x403e59
push 0x10e2
push 1
push 1
lea eax, [ebp - 0x90]
push 0x401fa4
push eax
call dword [sym.imp.MSVCR71.dll_swprintf]
add esp, 0x14
cmp byte [ebp - 0x4b1], 0
je 0x403f16
lea eax, [ebp - 0x90]
push eax
push 0x401f60
call dword [sym.imp.MSVCR71.dll_printf]
pop ecx
pop ecx
push 0
call dword [sym.imp.MSVCR71.dll_exit]
mov eax, dword [ebp - 0x4c4]
mov ebx, dword [eax + edi*4]
lea eax, [ebp - 0x90]
push eax
push 0x4102c8
call dword [sym.imp.MSVCR71.dll_wcscpy]
pop ecx
pop ecx
jmp 0x403ed2
xor edi, edi
push edi
mov eax, 0x403164
push eax
push eax
push 0x110
push edi
lea eax, [ebp - 0x90]
push eax
call sub.mscoree.dll_CorBindToRuntimeEx
lea eax, [ebp - 0x4d4]
push eax
push 0x401f48
mov dword [ebp - 0x4d4], edi
mov dword [ebp - 0x4cc], edi
mov dword [ebp - 0x4d0], edi
mov dword [ebp - 0x4d8], edi
call sub.mscoree.dll_GetRealProcAddress
cmp eax, edi
mov dword [ebp - 0x4b0], eax
jl 0x403f98
lea eax, [ebp - 0x4cc]
push eax
push 0x401f2c
call sub.mscoree.dll_GetRealProcAddress
lea eax, [ebp - 0x4d0]
push eax
push 0x401f20
call sub.mscoree.dll_GetRealProcAddress
lea eax, [ebp - 0x4d8]
push eax
push 0x401f10
call sub.mscoree.dll_GetRealProcAddress
cmp dword [ebp - 0x4d4], edi
je 0x404226
cmp dword [ebp - 0x4cc], edi
je 0x404226
cmp dword [ebp - 0x4d0], edi
je 0x404226
cmp dword [ebp - 0x4d8], edi
je 0x404226
lea eax, [ebp - 0x4f0]
push eax
lea ecx, [ebp - 0x4c4]
call fcn.0040392c
xor esi, esi
cmp ebx, esi
mov edi, 0x105
je 0x40401b
cmp word [ebx], si
je 0x40401b
lea eax, [ebp - 0x4dc]
push eax
lea eax, [ebp - 0x29c]
push eax
push edi
push ebx
mov dword [ebp - 0x4dc], esi
call fcn.00405ef0
cmp eax, esi
je 0x4040b9
cmp eax, edi
ja 0x4040b9
lea ebx, [ebp - 0x29c]
or dword [ebp - 0x4ac], 0xffffffff
lea eax, [ebp - 0x4f0]
push eax
lea eax, [ebp - 0x4ac]
push eax
mov dword [ebp - 0x4e8], ebx
call dword [ebp - 0x4d4]
cmp eax, esi
jl 0x404180
cmp dword [ebp - 0x4ac], 0xffffffff
je 0x404180
cmp byte [ebp - 0x4b8], 0
mov ebx, dword [ebp - 0x4b7]
jne 0x404068
test bl, bl
je 0x404180
xor edi, edi
cmp dword [ebp - 0x4c0], edi
je 0x404117
mov eax, dword [ebp - 0x4c4]
push 0x401f0c
push dword [eax]
call dword [sym.imp.MSVCR71.dll_wcscmp]
test eax, eax
pop ecx
pop ecx
je 0x404117
cmp dword [ebp - 0x4c0], edi
jbe 0x40414f
cmp byte [ebp - 0x4b8], 0
jne 0x4040d0
cmp byte [ebp - 0x4b2], 0
jne 0x4040b5
test bl, bl
jne 0x4040d0
xor al, al
jmp 0x4040d4
push 0x401ee8
call dword [sym.imp.MSVCR71.dll_printf]
pop ecx
push dword [ebp - 0x4c4]
jmp 0x404214
xor eax, eax
mov al, 1
push ebx
push eax
mov eax, dword [ebp - 0x4c4]
push dword [eax + edi*4]
push dword [ebp - 0x4ac]
call dword [ebp - 0x4cc]
test eax, eax
jge 0x404107
mov eax, dword [ebp - 0x4c4]
push dword [eax + edi*4]
push 0x401ec4
call dword [sym.imp.MSVCR71.dll_printf]
pop ecx
pop ecx
jmp 0x40410c
jne 0x40410c
xor esi, esi
inc esi
inc edi
cmp edi, dword [ebp - 0x4c0]
jb 0x40409f
jmp 0x40414b
cmp byte [ebp - 0x4b8], 0
jne 0x404131
cmp byte [ebp - 0x4b2], 0
jne 0x40412d
test bl, bl
jne 0x404131
xor al, al
jmp 0x404135
xor eax, eax
mov al, 1
push ebx
push eax
push edi
push dword [ebp - 0x4ac]
call dword [ebp - 0x4cc]
mov esi, eax
neg esi
sbb esi, esi
inc esi
test esi, esi
jne 0x404162
push 0x401ea0
call dword [sym.imp.MSVCR71.dll_printf]
or dword [ebp - 0x4c8], 0xffffffff
pop ecx
cmp dword [ebp - 0x4ac], 0xffffffff
je 0x4043e3
push dword [ebp - 0x4ac]
call dword [ebp - 0x4d8]
jmp 0x4043e3
xor ebx, ebx
cmp dword [ebp - 0x4c0], esi
jbe 0x404162
mov esi, dword [ebp - 0x4c4]
and dword [ebp - 0x4b0], 0
lea eax, [esi + ebx*4]
push dword [eax]
mov dword [ebp + 8], eax
call fcn.00408bd5
cmp eax, 0xffffffff
je 0x4041d6
test al, 0x10
jne 0x4041d6
lea eax, [ebp - 0x4b0]
push eax
lea eax, [ebp - 0x4a8]
push eax
mov eax, dword [ebp + 8]
push edi
push dword [eax]
call fcn.00405ef0
test eax, eax
je 0x404207
cmp eax, edi
ja 0x404207
lea eax, [ebp - 0x4a8]
jmp 0x4041db
mov eax, dword [ebp + 8]
mov eax, dword [eax]
push eax
push dword [ebp - 0x4ac]
mov dword [ebp - 0x4b0], eax
call dword [ebp - 0x4d0]
test eax, eax
jne 0x4041f9
or dword [ebp - 0x4c8], 0xffffffff
inc ebx
cmp ebx, dword [ebp - 0x4c0]
jb 0x40418a
jmp 0x404162
push 0x401ee8
call dword [sym.imp.MSVCR71.dll_printf]
pop ecx
push esi
or dword [ebp - 4], 0xffffffff
call dword [sym.imp.KERNEL32.dll_LocalFree]
or eax, 0xffffffff
jmp 0x4043f9
cmp dword [ebp - 0x4b0], 0x80131701
jne 0x4043c8
lea eax, [ebp - 0x4dc]
push eax
push 0x104
lea eax, [ebp - 0x29c]
push eax
mov dword [ebp - 0x4dc], edi
call sub.mscoree.dll_GetCORSystemDirectory
cmp eax, edi
mov dword [ebp - 0x4b0], eax
jl 0x4043d0
mov ebx, 0x401e8c
push ebx
call esi
lea ecx, [ebp - 0x29c]
push ecx
mov dword [ebp - 0x4ac], eax
call esi
mov edi, eax
mov eax, dword [ebp + 8]
pop ecx
dec eax
pop ecx
mov ecx, dword [ebp - 0x4ac]
add ecx, eax
xor eax, eax
inc eax
add edi, ecx
cmp dword [ebp + 8], eax
mov dword [ebp - 0x4ac], eax
jle 0x4042bb
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x4ac]
push dword [eax + ecx*4]
call esi
add edi, eax
inc dword [ebp - 0x4ac]
mov eax, dword [ebp - 0x4ac]
cmp eax, dword [ebp + 8]
pop ecx
jl 0x404299
push 0x401e78
call esi
add edi, eax
pop ecx
lea eax, [edi + edi + 2]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edi, eax
test edi, edi
je 0x4043d0
push ebx
lea eax, [ebp - 0x29c]
push eax
push 0x401e5c
push edi
call dword [sym.imp.MSVCR71.dll_swprintf]
push edi
call esi
mov ebx, eax
xor eax, eax
inc eax
add esp, 0x14
cmp dword [ebp + 8], eax
mov dword [ebp - 0x4ac], eax
jle 0x404354
lea eax, [edi + ebx*2]
push 0x401e58
push eax
call dword [sym.imp.MSVCR71.dll_wcscpy]
mov ecx, dword [ebp - 0x4ac]
mov eax, dword [ebp + 0xc]
lea eax, [eax + ecx*4]
push dword [eax]
inc ebx
mov dword [ebp - 0x4e4], eax
lea eax, [edi + ebx*2]
push eax
call dword [sym.imp.MSVCR71.dll_wcscpy]
mov eax, dword [ebp - 0x4e4]
push dword [eax]
call esi
add ebx, eax
add esp, 0x14
inc dword [ebp - 0x4ac]
mov eax, dword [ebp - 0x4ac]
cmp eax, dword [ebp + 8]
jl 0x404306
push 0x44
pop ebx
push ebx
xor esi, esi
lea eax, [ebp - 0x538]
push esi
push eax
call sub.MSVCR71.dll_memset
add esp, 0xc
lea eax, [ebp - 0x4f4]
push eax
lea eax, [ebp - 0x538]
push eax
push esi
push esi
push esi
push esi
push esi
push esi
push edi
push esi
mov dword [ebp - 0x538], ebx
call fcn.00408f06
cmp eax, esi
jne 0x40439b
mov dword [ebp - 0x4b0], 0x80004005
jmp 0x4043bf
push 0xffffffffffffffff
push dword [ebp - 0x4f4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0x4f4]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x4f0]
call esi
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
xor edi, edi
cmp dword [ebp - 0x4b0], edi
jge 0x4043e3
push 0x401e18
call dword [sym.imp.MSVCR71.dll_printf]
or dword [ebp - 0x4c8], 0xffffffff
pop ecx
push dword [ebp - 0x4c4]
or dword [ebp - 4], 0xffffffff
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [ebp - 0x4c8]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
pop ebx
call fcn.0040483b
leave
ret 8