Function at 0x414514
Capabilities:
Accept command line arguments

Disassembly:
mov eax, 0x42ff9c
call fcn.0042e9c0
sub esp, 0x1c
movsx eax, byte [0x438c19]
push ebx
push esi
push edi
mov esi, ecx
push eax
push 0x7625ffff
mov dword [ebp - 0x18], esi
call fcn.0040a8f9
mov dword [0x438c50], eax
xor ebx, ebx
movsx eax, byte [0x438c1b]
push eax
mov dword [ebp - 0x14], ebx
movsx eax, byte [0x438c19]
push eax
call fcn.0040aa18
add word [0x438c28], ax
add esp, 0x10
inc byte [0x438c1d]
mov dword [0x438c50], 0x8ba60000
mov eax, dword [esi + 0x28]
lea edx, [ebp - 0x14]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x48]
cmp byte [0x438c1c], bl
mov edi, eax
je 0x414599
cmp word [0x438c32], bx
je 0x414599
push 1
pop eax
jmp 0x41459b
xor eax, eax
add dword [0x438c4c], eax
mov al, byte [0x438c50]
mov cx, word [0x438c24]
dec al
mov byte [0x438c18], al
or al, 0xff
sub al, cl
add byte [0x438c1b], al
cmp edi, ebx
jl 0x4147ed
cmp dword [ebp - 0x14], ebx
je 0x4147ed
and cx, word [0x438c28]
mov dword [ebp - 0x10], ebx
add word [0x438c2a], cx
push dword [ebp - 0x14]
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], ebx
call fcn.00417b2d
mov eax, dword [ebp - 0x14]
inc byte [0x438c20]
cmp eax, ebx
je 0x414601
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push 0xd249ffff
push dword [0x438c58]
call fcn.0040a9de
add dword [0x438c40], eax
pop ecx
pop ecx
push 0x1da5ffff
call dword [sym.imp.USER32.dll_IsMenu]
add dword [0x438c50], eax
push dword [0x438c4c]
movsx eax, byte [0x438c20]
push eax
call fcn.0040aa18
add byte [0x438c19], al
push 0xc667ffff
movsx eax, byte [0x438c1d]
push eax
mov dword [ebp - 0x14], ebx
call fcn.0040aac5
mov byte [0x438c1e], al
mov eax, dword [0x438c5c]
or eax, dword [0x438c50]
add esp, 0x10
add dword [0x438c5c], eax
mov ax, word [0x438c26]
inc ax
add word [0x438c24], ax
cmp dword [ebp - 0x10], ebx
je 0x4147ed
push 1
lea eax, [ebp - 0x28]
pop edi
mov ecx, esi
push edi
push dword [ebp - 0x10]
push eax
call fcn.00412aca
inc word [0x438c30]
push 0xe007ffff
push 0xe8d3ffff
mov byte [ebp - 4], 1
call fcn.0040a9a5
add dword [0x438c50], eax
cmp word [0x438c2e], bx
pop ecx
pop ecx
jne 0x4146d2
cmp byte [0x438c1a], bl
jne 0x4146d2
xor eax, eax
jmp 0x4146d4
mov eax, edi
add word [0x438c2c], ax
movsx eax, byte [0x438c1e]
push eax
push 0xb87dffff
call fcn.0040aa83
mov byte [0x438c1d], al
movsx eax, word [0x438c26]
push eax
push 0x6347ffff
call fcn.0040ab0e
add word [0x438c34], ax
push 0xce83ffff
push 0xdd91ffff
call fcn.0040aa83
add byte [0x438c1d], al
add esp, 0x18
cmp dword [ebp - 0x24], ebx
je 0x4147d1
mov esi, dword [ebp - 0x20]
sub esi, dword [ebp - 0x24]
sar esi, 2
cmp esi, ebx
jle 0x4147d1
movsx eax, word [0x438c2a]
push eax
push 0x4bd7ffff
call fcn.0040aac5
add byte [0x438c1b], al
pop ecx
pop ecx
call dword [sym.imp.MSVCRT.dll_rand]
cdq
idiv esi
push dword [ebp + 8]
xor eax, eax
cmp word [0x438c30], bx
mov ecx, dword [ebp - 0x18]
mov dword [0x438c48], edi
setne al
add byte [0x438c1e], al
mov eax, dword [ebp - 0x24]
mov esi, edx
push dword [eax + esi*4]
push dword [ebp - 0x10]
call fcn.004147fe
movsx eax, byte [0x438c1f]
push eax
movsx eax, byte [0x438c21]
push eax
call fcn.0040aac5
add dword [0x438c58], eax
pop ecx
pop ecx
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
cmp word [0x438c2c], bx
mov dword [0x438c3c], eax
jne 0x4147ca
cmp word [0x438c22], bx
jne 0x4147ca
xor edi, edi
add word [0x438c2a], di
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], bl
call fcn.0041e670
mov eax, dword [ebp - 0x10]
or dword [ebp - 4], 0xffffffff
cmp eax, ebx
je 0x4147ed
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 4