Function at 0x403a40
Capabilities:
Accept command line arguments

Disassembly:
push 0xffffffffffffffff
push 0x419e08
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push ebp
push esi
push edi
mov eax, dword [0x422380]
xor eax, esp
push eax
lea eax, [esp + 0x38]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x54]
lea eax, [esp + 0x18]
push eax
call fcn.00401f60
xor ebx, ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x54], ebx
mov byte [esp + 0x40], 1
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push str.__boot
push eax
call fcn.0040c550
mov ecx, dword [ebp]
mov edx, dword [ecx + 0x10]
add esp, 8
mov esi, eax
neg esi
sbb esi, esi
push ebp
neg esi
call edx
push str.StartType
push eax
call fcn.0040c550
add esp, 8
cmp eax, ebx
je 0x403af3
mov ecx, str.StartType
lea edi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
cmp dl, bl
jne 0x403ac7
sub ecx, edi
add eax, ecx
xor edx, edx
mov cl, byte [eax]
cmp cl, 0x30
jl 0x403ae0
cmp cl, 0x39
jle 0x403ae9
inc edx
inc eax
cmp edx, 0x10
jb 0x403ad4
jmp 0x403af3
cmp esi, ebx
sete cl
add cl, 0x31
mov byte [eax], cl
mov edx, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
push edx
push edi
lea edx, [esp + 0x5c]
lea ecx, [esp + 0x20]
call fcn.00403100
test eax, eax
jne 0x403b7c
mov byte [esp + 0x40], bl
mov eax, dword [esp + 0x54]
cmp eax, ebx
je 0x403b22
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea esi, [esp + 0x18]
call fcn.00401ea0
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 4], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], ebx
cmp eax, ecx
je 0x403b5b
mov esi, dword [eax]
push eax
call fcn.0040bd0f
mov ecx, dword [esp + 0x30]
add esp, 4
mov eax, esi
cmp esi, ecx
jne 0x403b46
push ecx
call fcn.0040bd0f
mov eax, dword [esp + 0x1c]
add esp, 4
push eax
mov dword [esp + 0x30], ebx
call fcn.0040bd0f
add esp, 4
xor eax, eax
jmp 0x403db8
mov esi, dword [esp + 0x50]
cmp esi, ebx
je 0x403baa
mov ecx, dword [esi]
mov edx, dword [ecx + 0x14]
push edi
push esi
call edx
mov ecx, dword [esi]
mov edx, dword [ecx + 0x10]
push esi
mov dword [esp + 0x54], eax
call edx
push eax
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x58]
mov ecx, eax
call fcn.004018d0
mov dword [esp + 0x4c], ebx
lea ecx, [esp + 0x4c]
push ecx
lea ecx, [esp + 0x1c]
mov byte [esp + 0x44], 2
call fcn.004019b0
test eax, eax
jne 0x403c3e
push 0xe
push 0x41f45c
mov ecx, edi
call fcn.00401210
mov byte [esp + 0x40], 1
mov eax, dword [esp + 0x4c]
cmp eax, ebx
je 0x403be8
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov byte [esp + 0x40], bl
mov eax, dword [esp + 0x54]
cmp eax, ebx
je 0x403bfc
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea esi, [esp + 0x18]
call fcn.00401ea0
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 4], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], ebx
cmp eax, ecx
je 0x403b5b
mov esi, dword [eax]
push eax
call fcn.0040bd0f
mov ecx, dword [esp + 0x30]
add esp, 4
mov eax, esi
cmp esi, ecx
jne 0x403c24
jmp 0x403b5b
mov esi, dword [esp + 0x4c]
mov ebx, edi
mov ecx, esi
call fcn.004038c0
xor ebx, ebx
cmp eax, ebx
jne 0x403cba
mov byte [esp + 0x40], 1
cmp esi, ebx
je 0x403c62
mov ecx, dword [esi]
mov edx, dword [ecx + 8]
push esi
call edx
mov byte [esp + 0x40], bl
mov eax, dword [esp + 0x54]
cmp eax, ebx
je 0x403c76
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea esi, [esp + 0x18]
call fcn.00401ea0
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 4], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], ebx
cmp eax, ecx
je 0x403b5b
mov edi, edi
mov esi, dword [eax]
push eax
call fcn.0040bd0f
mov ecx, dword [esp + 0x30]
add esp, 4
mov eax, esi
cmp esi, ecx
jne 0x403ca0
jmp 0x403b5b
push edi
mov edi, dword [esp + 0x58]
mov edx, ebp
mov ecx, edi
call fcn.00403dd0
mov byte [esp + 0x40], 1
test eax, eax
jne 0x403d44
cmp esi, ebx
je 0x403cdd
mov ecx, dword [esi]
mov edx, dword [ecx + 8]
push esi
call edx
mov byte [esp + 0x40], bl
cmp edi, ebx
je 0x403ced
mov eax, dword [edi]
mov ecx, dword [eax + 8]
push edi
call ecx
lea esi, [esp + 0x18]
call fcn.00401ea0
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 4], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], ebx
cmp eax, ecx
je 0x403d26
mov esi, dword [eax]
push eax
call fcn.0040bd0f
mov ecx, dword [esp + 0x30]
add esp, 4
mov eax, esi
cmp esi, ecx
jne 0x403d11
push ecx
call fcn.0040bd0f
mov edx, dword [esp + 0x1c]
add esp, 4
push edx
mov dword [esp + 0x30], ebx
call fcn.0040bd0f
add esp, 4
xor eax, eax
jmp 0x403db8
cmp esi, ebx
je 0x403d50
mov eax, dword [esi]
mov ecx, dword [eax + 8]
push esi
call ecx
mov byte [esp + 0x40], bl
cmp edi, ebx
je 0x403d60
mov edx, dword [edi]
mov eax, dword [edx + 8]
push edi
call eax
lea esi, [esp + 0x18]
call fcn.00401ea0
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 4], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], ebx
cmp eax, ecx
je 0x403d99
mov esi, dword [eax]
push eax
call fcn.0040bd0f
mov ecx, dword [esp + 0x30]
add esp, 4
mov eax, esi
cmp esi, ecx
jne 0x403d84
push ecx
call fcn.0040bd0f
mov ecx, dword [esp + 0x1c]
add esp, 4
push ecx
mov dword [esp + 0x30], ebx
call fcn.0040bd0f
add esp, 4
mov eax, 1
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 0x10