Function at 0x40108d
Capabilities:
Accept command line arguments
Check for outputdebugstring error
Link many functions at runtime
Print debug messages

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x134c
call fcn.00401ad0
push ebx
push esi
push edi
xor ebx, ebx
mov word [ebp - 0x134c], bx
mov ecx, 0x3ff
xor eax, eax
lea edi, [ebp - 0x134a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
jmp 0x4010c7
push 0x40940c
call fcn.0040188c
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
cmp edi, ebx
je 0x4010f9
push 0x409400
call fcn.0040188c
pop ecx
push eax
push edi
call esi
mov dword [0x40dd40], eax
push 0x4093ec
call fcn.0040188c
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov edi, eax
cmp edi, ebx
jne 0x40115b
push 0x4093ec
call fcn.0040188c
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
cmp edi, ebx
jne 0x40115b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x4093a0
call fcn.0040188c
pop ecx
push eax
mov esi, 0x40ddc8
push esi
call fcn.00401a6a
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x1b58
jmp 0x4014fa
push 0x40938c
call fcn.0040188c
pop ecx
push eax
push edi
call esi
push 0x409378
mov dword [ebp - 0x38], eax
call fcn.0040188c
pop ecx
push eax
push edi
call esi
push 0x409360
mov dword [ebp - 0x10], eax
call fcn.0040188c
pop ecx
push eax
push edi
call esi
push 0x40934c
mov dword [ebp - 0x1c], eax
call fcn.0040188c
pop ecx
push eax
push edi
call esi
push 0x409334
mov dword [ebp - 4], eax
call fcn.0040188c
pop ecx
push eax
push edi
call esi
push 0x409320
mov dword [ebp - 0x14], eax
call fcn.0040188c
pop ecx
push eax
push edi
call esi
push 0x409310
mov dword [ebp - 0x30], eax
call fcn.0040188c
pop ecx
push eax
push edi
call esi
push 0x4092fc
mov dword [ebp - 0xc], eax
call fcn.0040188c
pop ecx
push eax
push edi
call esi
push 0x4092e0
mov dword [ebp - 0x34], eax
call fcn.0040188c
pop ecx
push eax
push edi
call esi
cmp dword [ebp - 0x38], ebx
mov dword [ebp - 0x3c], eax
je 0x4014cd
cmp dword [ebp - 0x10], ebx
je 0x4014cd
cmp dword [ebp - 0x1c], ebx
je 0x4014cd
cmp dword [ebp - 4], ebx
je 0x4014cd
cmp dword [ebp - 0x14], ebx
je 0x4014cd
cmp dword [ebp - 0x30], ebx
je 0x4014cd
cmp dword [ebp - 0xc], ebx
je 0x4014cd
cmp dword [ebp - 0x34], ebx
je 0x4014cd
cmp eax, ebx
je 0x4014cd
lea eax, [ebp - 8]
push eax
push 4
push ebx
push 0x401080
push ebx
push ebx
mov dword [ebp - 8], ebx
call dword [ebp - 4]
cmp eax, ebx
mov dword [ebp - 0x18], eax
jne 0x40129a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x4092b8
call fcn.0040188c
pop ecx
push eax
mov esi, 0x40ddc8
push esi
call fcn.00401a6a
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x1388
jmp 0x4014fa
push 0x409294
call fcn.0040188c
mov edi, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop ecx
push eax
call edi
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push ebx
push 2
push dword [0x40ddb4]
push dword [0x40dd7c]
call esi
cmp eax, ebx
mov dword [ebp - 4], eax
je 0x4014c6
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x4014c6
push 0x4c
push 0x40dd78
push dword [ebp - 4]
call fcn.00401506
add esp, 0xc
test eax, eax
jne 0x40131e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x40926c
call fcn.0040188c
pop ecx
push eax
mov esi, 0x40ddc8
push esi
call fcn.00401a6a
add esp, 0xc
push esi
call edi
jmp 0x401500
lea eax, [ebp - 0x80]
push eax
call dword [ebp - 0x34]
lea eax, [ebp - 0x134c]
push eax
push 0x7fe
call dword [ebp - 0x3c]
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x134c]
push eax
push ebx
push 0x200
push 1
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
push dword [ebp - 4]
call dword [ebp - 0x30]
test eax, eax
jne 0x40138c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x409240
call fcn.0040188c
pop ecx
push eax
mov esi, 0x40ddc8
push esi
call fcn.00401a6a
add esp, 0xc
push esi
call edi
push 0x7d0
jmp 0x4014fa
push dword [ebp - 0x2c]
push 1
push dword [0x40ddb4]
push dword [0x40dd7c]
call esi
cmp eax, 0x64
je 0x4013d2
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x409218
call fcn.0040188c
pop ecx
push eax
mov esi, 0x40ddc8
push esi
call fcn.00401a6a
add esp, 0xc
push esi
call edi
push 0x1f40
jmp 0x4014fa
push dword [ebp - 0x18]
call dword [ebp - 0x10]
cmp eax, 0xffffffff
jne 0x40140b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x4091f0
call fcn.0040188c
pop ecx
push eax
mov esi, 0x40ddc8
push esi
call fcn.00401a6a
add esp, 0xc
push esi
call edi
push 0xbb8
jmp 0x4014fa
push dword [ebp - 0x28]
call dword [ebp - 0x38]
cmp eax, 0xffffffff
mov esi, 0x40ddc8
je 0x40144d
lea eax, [ebp - 0x34c]
push eax
push dword [ebp - 0x28]
xor ebx, ebx
inc ebx
mov dword [0x40dec8], ebx
mov dword [ebp - 0x34c], 0x10007
call dword [ebp - 0x14]
test eax, eax
je 0x401445
mov dword [0x40decc], ebx
push dword [ebp - 0x28]
call dword [ebp - 0x10]
jmp 0x40146f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x4091c0
call fcn.0040188c
pop ecx
push eax
push esi
call fcn.00401a6a
add esp, 0xc
push esi
call edi
xor ebx, ebx
inc ebx
push 0xffffffffffffffff
push dword [ebp - 0x2c]
call dword [ebp - 0x1c]
push dword [ebp - 0x18]
call dword [ebp - 0xc]
push dword [ebp - 0x2c]
call dword [ebp - 0xc]
push dword [ebp - 0x28]
call dword [ebp - 0xc]
call fcn.00401737
test eax, eax
jne 0x4014b2
push 0x40918c
call fcn.0040188c
push eax
push esi
call fcn.00401a6a
add esp, 0xc
push esi
call edi
mov eax, ebx
pop edi
pop esi
pop ebx
leave
ret 0x10
jmp 0x4014c2
xor eax, eax
jmp 0x4014ab
push 0x2328
jmp 0x4014fa
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x409158
call fcn.0040188c
pop ecx
push eax
mov esi, 0x40ddc8
push esi
call fcn.00401a6a
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x3e8
call dword [sym.imp.KERNEL32.dll_SetLastError]
call section.Sitext
int3