Function at 0x412aca
Capabilities:
Accept command line arguments
Identify system language via api

Disassembly:
mov eax, 0x42ff43
call fcn.0042e9c0
sub esp, 0xa8
mov al, byte [ebp + 0x13]
push ebx
xor ebx, ebx
push esi
push edi
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], ebx
mov byte [ebp - 0x7c], al
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
or word [0x438c26], 0xffff
push 1
pop edi
mov dword [ebp - 0x10], ebx
mov dword [ebp - 4], edi
mov dword [ebp - 0x28], ebx
mov esi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov byte [ebp - 4], 2
call esi
add word [0x438c22], ax
inc word [0x438c30]
push 0x8a7ffff
push 0x7a25ffff
call fcn.0040a933
pop ecx
mov dword [0x438c5c], eax
mov eax, dword [ebp + 0xc]
pop ecx
lea edx, [ebp - 0x28]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x24]
add dword [0x438c5c], 0x97dfffe
inc dword [0x438c3c]
mov dword [ebp + 0xc], eax
call esi
cmp dword [ebp + 0xc], ebx
mov dword [0x438c4c], eax
jl 0x413d77
cmp dword [ebp - 0x28], ebx
je 0x413d77
mov dword [ebp - 0x38], ebx
push 0x1915ffff
push 0xfb93ffff
mov byte [ebp - 4], 3
call fcn.0040a96f
mov word [0x438c34], ax
mov al, byte [0x438c22]
imul byte [0x438c44]
pop ecx
mov byte [0x438c1b], al
mov eax, dword [ebp - 0x28]
pop ecx
lea edx, [ebp - 0x38]
mov word [0x438c26], di
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x3c]
movsx eax, byte [0x438c1f]
add eax, 0x271bffff
push 0x1829ffff
mov dword [0x438c4c], eax
movsx eax, byte [0x438c1b]
push eax
call fcn.0040a96f
inc word [0x438c28]
cmp dword [ebp - 0x38], ebx
pop ecx
mov dword [0x438c5c], eax
pop ecx
je 0x412f1e
movsx ax, byte [0x438c1b]
or ecx, 0xffffffff
sub ecx, eax
mov word [0x438c26], cx
call dword [sym.imp.USER32.dll_GetInputState]
mov word [0x438c32], ax
mov dword [ebp - 0x14], ebx
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x10]
push edx
push eax
mov ecx, dword [eax]
mov byte [ebp - 4], 4
call dword [ecx + 0x174]
push dword [ebp - 0x10]
lea ecx, [ebp - 0x14]
call fcn.00417cc0
or al, 0xff
sub al, byte [0x438c34]
mov byte [0x438c19], al
mov al, byte [0x438c1f]
add al, byte [0x438c40]
mov byte [0x438c1f], al
movsx eax, al
push eax
movsx eax, byte [0x438c18]
push eax
call fcn.0040ab0e
add byte [0x438c19], al
mov eax, dword [ebp - 0x10]
pop ecx
cmp eax, ebx
pop ecx
je 0x412c72
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [0x438c54]
mov dword [ebp - 0x10], ebx
push 0x42c1ffff
call fcn.0040a933
pop ecx
mov word [0x438c24], ax
pop ecx
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
cmp dword [ebp - 0x14], ebx
mov word [0x438c2c], ax
je 0x412f0d
mov dword [ebp - 0x18], ebx
movsx eax, byte [0x438c20]
push eax
push 0xe519ffff
mov byte [ebp - 4], 5
call fcn.0040a9de
mov dword [0x438c58], eax
mov al, byte [0x438c20]
add byte [0x438c1e], al
push 0xc1e1ffff
movsx eax, byte [0x438c1d]
push eax
mov word [ebp - 0x54], 8
call fcn.0040aa83
add word [0x438c32], ax
push 0xbb49ffff
push 0x9e21ffff
call fcn.0040aac5
push 0xffffffffffffffff
push str.base
mov dword [0x438c38], eax
call fcn.00411ed7
add esp, 0x20
lea edx, [ebp - 0x10]
lea esi, [ebp - 0x54]
mov dword [ebp - 0x4c], eax
push edx
mov eax, dword [ebp - 0x14]
sub esp, 0x10
mov edi, esp
mov ecx, dword [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x30]
push dword [ebp - 0x4c]
mov dword [0x438c50], 1
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
push dword [ebp - 0x10]
lea ecx, [ebp - 0x18]
call fcn.00417cc0
push 0xa1cbffff
push 0x1935ffff
call fcn.0040a8f9
add dword [0x438c4c], eax
pop ecx
pop ecx
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov dword [0x438c48], eax
mov eax, dword [ebp - 0x10]
cmp eax, ebx
mov byte [0x438c19], 1
je 0x412d7d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push 0xa2b9ffff
mov dword [ebp - 0x10], ebx
push dword [0x438c54]
call fcn.0040a933
mov dword [0x438c50], eax
mov eax, dword [ebp - 0x18]
pop ecx
cmp eax, ebx
pop ecx
je 0x412efc
mov ecx, dword [eax]
lea edx, [ebp - 0x20]
push edx
push eax
call dword [ecx + 0x24]
movsx eax, word [0x438c34]
push 0x430dffff
push eax
call fcn.0040aa4f
cmp dword [ebp - 0x20], ebx
pop ecx
pop ecx
mov byte [0x438c1b], al
jle 0x412efc
mov dword [ebp - 0x1c], ebx
push dword [0x438c38]
mov byte [ebp - 4], 6
mov dword [ebp + 0xc], ebx
push 0xdc19ffff
call fcn.0040aac5
inc dword [0x438c5c]
cmp dword [ebp - 0x20], ebx
pop ecx
mov word [0x438c2e], ax
pop ecx
jle 0x412eeb
mov word [ebp - 0x54], 3
mov eax, dword [ebp + 0xc]
lea edx, [ebp - 0x10]
push edx
lea esi, [ebp - 0x54]
sub esp, 0x10
mov dword [ebp - 0x4c], eax
mov edi, esp
sub esp, 0x10
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x54]
mov edi, esp
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x18]
mov byte [0x438c1d], 1
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x2c]
push dword [ebp - 0x10]
lea ecx, [ebp - 0x1c]
call fcn.00417de4
movsx eax, byte [0x438c1f]
push eax
push eax
call fcn.0040a9a5
push 0x7f9bffff
mov word [0x438c26], ax
push dword [0x438c4c]
mov dword [0x438c50], 0x21ffff
call fcn.0040a96f
add word [0x438c24], ax
mov eax, dword [ebp - 0x10]
add esp, 0x10
cmp eax, ebx
je 0x412e87
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
movsx eax, word [0x438c22]
push eax
push 0x37dbffff
mov dword [ebp - 0x10], ebx
call fcn.0040ab0e
add dword [0x438c58], 0x653dfffe
mov word [0x438c32], ax
mov eax, dword [ebp - 0x1c]
pop ecx
cmp eax, ebx
pop ecx
je 0x412eda
movsx cx, byte [0x438c1b]
neg ecx
mov byte [0x438c1e], bl
mov word [0x438c26], cx
mov ecx, dword [eax]
push 0x438200
push eax
call dword [ecx + 0x24]
mov eax, dword [ebp - 0x1c]
inc dword [ebp + 0xc]
mov ecx, dword [ebp + 0xc]
cmp ecx, dword [ebp - 0x20]
jl 0x412e05
jmp 0x412eee
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
mov byte [ebp - 4], 5
je 0x412efc
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 4
cmp eax, ebx
je 0x412f0d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 3
cmp eax, ebx
je 0x412f1e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [0x438c5c]
push 0xf4bbffff
call fcn.0040aac5
add byte [0x438c1d], al
mov dword [ebp - 0x3c], ebx
movsx eax, word [0x438c28]
push dword [0x438c44]
mov byte [ebp - 4], 7
push eax
call fcn.0040ab0e
add byte [0x438c1c], al
push 0xf75ffff
push 0x8877ffff
call fcn.0040aa83
movsx ecx, byte [0x438c1f]
mov dword [0x438c58], eax
add esp, 0x18
movsx eax, byte [0x438c18]
sub eax, ecx
lea edx, [ebp - 0x10]
add dword [0x438c4c], eax
mov eax, dword [ebp - 0x28]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x174]
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push 0xa3f1ffff
push 0x893bffff
mov dword [0x438c4c], eax
call fcn.0040a9de
add dword [0x438c4c], eax
pop ecx
movsx ax, byte [0x438c21]
pop ecx
movsx cx, byte [0x438c19]
imul eax, ecx
push dword [ebp - 0x10]
add word [0x438c24], ax
lea ecx, [ebp - 0x3c]
call fcn.00417cc0
movsx eax, word [0x438c2e]
push eax
push 0x3271ffff
call fcn.0040a933
add byte [0x438c1c], al
mov eax, dword [ebp - 0x10]
pop ecx
cmp eax, ebx
pop ecx
je 0x412fff
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
movsx eax, byte [0x438c1d]
push 0xb25dffff
push eax
call fcn.0040ab0e
mov word [0x438c30], ax
mov al, byte [0x438c1a]
dec al
push 0xfa1fffff
add byte [0x438c1e], al
mov ax, word [0x438c4c]
sub word [0x438c2e], ax
mov dword [ebp - 0x10], ebx
movsx eax, byte [0x438c20]
push eax
call fcn.0040a8f9
add esp, 0x10
cmp dword [ebp - 0x3c], ebx
mov dword [0x438c38], eax
je 0x413d25
push 0x3d7dffff
push 0x87adffff
mov dword [0x438c3c], 1
call fcn.0040aac5
mov byte [0x438c1d], al
mov dword [ebp - 0x20], ebx
movsx eax, word [0x438c2c]
or byte [0x438c1e], 0xff
push eax
movsx eax, byte [0x438c1b]
push eax
mov byte [ebp - 4], 8
call fcn.0040aa4f
add esp, 0x10
mov dword [0x438c3c], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0xffffffffffffffff
push 0x4381fc
mov word [0x438c24], ax
mov word [ebp - 0x54], 8
call fcn.00411ed7
pop ecx
or byte [0x438c18], 0xff
pop ecx
mov dword [ebp - 0x4c], eax
push dword [0x438c40]
push 0x58f7ffff
push 0xeb37ffff
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov byte [0x438c1e], al
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
lea edx, [ebp - 0x10]
lea esi, [ebp - 0x54]
push edx
mov dword [0x438c3c], eax
sub esp, 0x10
mov eax, dword [ebp - 0x3c]
mov edi, esp
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x30]
push dword [ebp - 0x4c]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
push dword [0x438c48]
push 0xc4abffff
call fcn.0040aa83
add word [0x438c28], ax
pop ecx
pop ecx
call dword [sym.imp.USER32.dll_GetInputState]
push dword [ebp - 0x10]
lea ecx, [ebp - 0x20]
mov word [0x438c30], ax
call fcn.00417cc0
mov eax, dword [ebp - 0x10]
cmp eax, ebx
je 0x41314f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov al, byte [0x438c40]
dec al
mov byte [0x438c20], al
movsx eax, byte [0x438c21]
push eax
push 0x3409ffff
call fcn.0040a9a5
add dword [0x438c48], eax
mov al, byte [0x438c54]
or al, byte [0x438c1e]
pop ecx
pop ecx
mov dword [ebp - 0x10], ebx
mov byte [0x438c1f], al
mov ax, word [0x438c24]
dec ax
add word [0x438c28], ax
movsx ax, byte [0x438c1a]
add eax, dword [0x438c50]
add word [0x438c2c], ax
mov eax, dword [ebp - 0x20]
cmp eax, ebx
je 0x413cee
mov ecx, dword [eax]
lea edx, [ebp - 0x60]
push edx
push eax
call dword [ecx + 0x24]
movsx eax, byte [0x438c18]
push eax
push dword [0x438c48]
call fcn.0040aa4f
add byte [0x438c1d], al
movsx eax, word [0x438c2c]
push eax
push 0x4065ffff
call fcn.0040aa18
add dword [0x438c4c], eax
add esp, 0x10
cmp dword [ebp - 0x60], ebx
jle 0x413cee
movsx eax, byte [0x438c1a]
push 0x8c9dffff
push eax
call fcn.0040aa4f
add byte [0x438c1c], al
mov al, byte [0x438c19]
movsx ecx, byte [0x438c1a]
dec al
push 0xc6d7ffff
add byte [0x438c18], al
movsx eax, word [0x438c30]
add ecx, eax
push eax
mov dword [0x438c58], ecx
call fcn.0040aa4f
add dword [0x438c5c], eax
push 0xdf03ffff
movsx eax, byte [0x438c1f]
push eax
mov byte [0x438c1a], 1
call fcn.0040a9de
add dword [0x438c40], eax
push 0xc031ffff
push 0x4d95ffff
call fcn.0040a8f9
add word [0x438c32], ax
movsx eax, byte [0x438c1e]
push eax
push dword [0x438c40]
call fcn.0040aa4f
add byte [0x438c20], al
mov dword [ebp - 0x24], ebx
push 0xcc37ffff
push 0xbd7dffff
mov byte [ebp - 4], 9
call fcn.0040aac5
mov dword [0x438c48], eax
push 0x126dffff
movsx ax, byte [0x438c1d]
or ax, word [0x438c24]
push 0x560bffff
add word [0x438c28], ax
call fcn.0040a96f
add byte [0x438c1f], al
push 0x238fffff
push dword [0x438c40]
mov dword [ebp - 0x14], ebx
call fcn.0040ab0e
mov word [0x438c24], ax
mov eax, dword [ebp - 0x14]
add esp, 0x40
cmp eax, dword [ebp - 0x60]
jge 0x413c85
mov word [ebp - 0x94], 3
movsx eax, word [0x438c30]
push eax
push dword [0x438c40]
call fcn.0040aac5
push dword [0x438c5c]
mov dword [0x438c40], eax
push 0x59adffff
call fcn.0040a933
add word [0x438c26], ax
push dword [0x438c44]
movsx eax, byte [0x438c1a]
push eax
call fcn.0040aa18
add byte [0x438c1d], al
movsx eax, word [0x438c2c]
push eax
movsx eax, byte [0x438c1c]
push eax
call fcn.0040a8f9
add word [0x438c24], ax
mov eax, dword [ebp - 0x14]
add esp, 0x20
lea edx, [ebp - 0x10]
lea esi, [ebp - 0x94]
mov dword [ebp - 0x8c], eax
push edx
sub esp, 0x10
mov edi, esp
sub esp, 0x10
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsx ax, byte [0x438c1d]
movsd dword es:[edi], dword [esi]
and ax, word [0x438c32]
lea esi, [ebp - 0x94]
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov word [0x438c2e], ax
mov eax, dword [ebp - 0x20]
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
push eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x2c]
push dword [ebp - 0x10]
add dword [0x438c50], 0xeffffff
inc dword [0x438c5c]
lea ecx, [ebp - 0x24]
call fcn.00417e11
add dword [0x438c48], 0x42a0001
push 0xdefffff
push 0xa37fffff
call fcn.0040a9de
add word [0x438c24], ax
mov eax, dword [ebp - 0x10]
pop ecx
cmp eax, ebx
pop ecx
je 0x413409
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp word [0x438c22], bx
jne 0x413420
cmp dword [0x438c4c], ebx
mov dword [0x438c3c], ebx
je 0x41342a
mov dword [0x438c3c], 1
push 0x2f8dffff
push 0x84d1ffff
call fcn.0040ab0e
add byte [0x438c1d], al
mov esi, dword [sym.imp.KERNEL32.dll_GetCommandLineA]
xor eax, eax
cmp word [0x438c30], bx
pop ecx
mov dword [ebp - 0x10], ebx
setne al
add byte [0x438c1f], al
pop ecx
mov byte [ebp + 0xf], bl
call esi
dec byte [0x438c18]
cmp dword [ebp - 0x24], ebx
mov dword [0x438c3c], eax
je 0x413bcb
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
add dword [0x438c54], eax
lea ecx, [ebp - 0x30]
mov byte [ebp + 0xf], 1
call fcn.00427e77
push 0x78c3ffff
push 0xecd3ffff
mov byte [ebp - 4], 0xa
call fcn.0040a9de
cmp dword [0x438c54], ebx
mov dword [0x438c50], eax
pop ecx
lea edx, [ebp - 0x30]
setne al
mov byte [0x438c1c], al
mov eax, dword [ebp - 0x24]
pop ecx
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x28]
test eax, eax
jl 0x41350b
call esi
mov byte [0x438c21], al
mov eax, dword [ebp - 0x24]
push 0x438200
push eax
mov ecx, dword [eax]
call dword [ecx + 0x24]
push 0xdfa7ffff
push dword [0x438c40]
call fcn.0040aac5
push dword [0x438c58]
mov dword [0x438c50], eax
movsx eax, byte [0x438c1b]
push eax
call fcn.0040a933
add esp, 0x10
mov byte [0x438c1c], al
push 0x4bedffff
push dword [0x438c44]
call fcn.0040ab0e
add word [0x438c32], ax
mov eax, dword [ebp - 0x24]
pop ecx
lea edx, [ebp - 0x30]
pop ecx
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x20]
test eax, eax
jl 0x413850
mov al, byte [0x438c18]
dec word [0x438c24]
cmp byte [ebp + 0x10], bl
mov word [0x438c34], 1
mov byte [0x438c1b], al
je 0x413591
mov esi, dword [0x433030]
push 0xfffffffffffffffc
pop edi
mov al, byte [esi]
sub al, 3
movzx eax, al
add eax, 3
and eax, edi
call fcn.0042e9e0
mov eax, esp
push ebx
push esi
push eax
call fcn.0042bd2b
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.00428769
cmp eax, 0xffffffff
jne 0x413594
mov byte [ebp + 0xf], bl
jmp 0x413594
push 0xfffffffffffffffc
pop edi
mov al, byte [0x438c2a]
mov esi, dword [0x433034]
imul byte [0x438c20]
mov byte [0x438c20], al
mov eax, dword [0x438c58]
dec eax
add word [0x438c26], ax
mov al, byte [esi]
sub al, 3
movzx eax, al
add eax, 3
and eax, edi
call fcn.0042e9e0
mov eax, esp
push ebx
push esi
push eax
call fcn.0042bd2b
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.00428769
cmp eax, 0xffffffff
je 0x4135e5
mov byte [ebp + 0xf], bl
movsx eax, word [0x438c30]
push 0xf5afffff
push eax
call fcn.0040aa18
add word [0x438c2a], ax
movsx eax, byte [0x438c1b]
push eax
push 0x9da7ffff
call fcn.0040aa4f
add dword [0x438c40], eax
add esp, 0x10
push 0x6779ffff
call dword [sym.imp.USER32.dll_IsMenu]
mov esi, dword [0x433038]
mov word [0x438c2a], ax
mov al, byte [esi]
sub al, 3
movzx eax, al
add eax, 3
and eax, edi
call fcn.0042e9e0
mov eax, esp
push ebx
push esi
push eax
call fcn.0042bd2b
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.00428769
cmp eax, 0xffffffff
je 0x41365e
mov byte [ebp + 0xf], bl
mov ax, word [0x438c2e]
mov esi, dword [0x43303c]
inc ax
mov word [0x438c26], ax
mov al, byte [esi]
sub al, 3
movzx eax, al
add eax, 3
and eax, edi
call fcn.0042e9e0
mov eax, esp
push ebx
push esi
push eax
call fcn.0042bd2b
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.00428769
cmp eax, 0xffffffff
je 0x4136a0
mov byte [ebp + 0xf], bl
movsx ax, byte [0x438c18]
mov esi, dword [0x433040]
sub word [0x438c30], ax
mov al, byte [esi]
sub al, 3
movzx eax, al
add eax, 3
and eax, edi
call fcn.0042e9e0
mov eax, esp
push ebx
push esi
push eax
call fcn.0042bd2b
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.00428769
cmp eax, 0xffffffff
je 0x4136e3
mov byte [ebp + 0xf], bl
push dword [0x438c58]
call dword [sym.imp.USER32.dll_IsMenu]
mov esi, dword [0x433044]
add byte [0x438c1e], al
mov al, byte [esi]
sub al, 3
movzx eax, al
add eax, 3
and eax, edi
call fcn.0042e9e0
mov eax, esp
push ebx
push esi
push eax
call fcn.0042bd2b
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.00428769
cmp eax, 0xffffffff
je 0x413729
mov byte [ebp + 0xf], bl
movsx eax, byte [0x438c19]
push eax
push 0xec17ffff
call fcn.0040a8f9
add byte [0x438c21], al
push 0x6b2fffff
push 0xb28fffff
call fcn.0040a8f9
push 0x7f2fffff
mov word [0x438c2c], ax
push dword [0x438c4c]
call fcn.0040aa83
mov esi, dword [0x433048]
add word [0x438c22], ax
add esp, 0x18
mov al, byte [esi]
sub al, 3
movzx eax, al
add eax, 3
and eax, edi
call fcn.0042e9e0
mov eax, esp
push ebx
push esi
push eax
call fcn.0042bd2b
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.00428769
cmp eax, 0xffffffff
je 0x4137a4
mov byte [ebp + 0xf], bl
cmp dword [0x438c54], ebx
jne 0x4137ba
cmp dword [0x438c3c], ebx
mov byte [0x438c1b], bl
je 0x4137c1
mov byte [0x438c1b], 1
mov esi, dword [0x43304c]
inc byte [0x438c1e]
mov byte [0x438c1d], 1
mov al, byte [esi]
sub al, 3
movzx eax, al
add eax, 3
and eax, edi
call fcn.0042e9e0
mov eax, esp
push ebx
push esi
push eax
call fcn.0042bd2b
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.00428769
cmp eax, 0xffffffff
je 0x413802
mov byte [ebp + 0xf], bl
mov esi, dword [0x433050]
mov al, byte [esi]
sub al, 3
movzx eax, al
add eax, 3
and eax, edi
call fcn.0042e9e0
mov eax, esp
push ebx
push esi
push eax
call fcn.0042bd2b
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.00428769
cmp eax, 0xffffffff
je 0x413836
mov byte [ebp + 0xf], bl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
dec byte [0x438c1e]
cmp byte [ebp + 0xf], bl
mov dword [0x438c50], eax
je 0x413b91
mov eax, dword [ebp - 0x6c]
cmp byte [eax + 0x55], bl
je 0x413b91
cmp dword [eax + 0x58], ebx
jg 0x41386a
cmp dword [eax + 0x5c], ebx
jle 0x413b91
mov eax, dword [ebp - 0x24]
mov byte [ebp + 0xf], bl
cmp eax, ebx
mov dword [ebp - 0x64], ebx
je 0x413885
mov ecx, dword [eax]
lea edx, [ebp - 0x64]
push edx
push 0x4381a8
push eax
call dword [ecx]
mov eax, dword [ebp - 0x64]
mov byte [ebp - 4], 0xb
cmp eax, ebx
je 0x413b80
mov ecx, dword [eax]
lea edx, [ebp - 0x10]
push edx
push eax
call dword [ecx + 0x174]
mov eax, dword [ebp - 0x10]
cmp eax, ebx
je 0x413b80
lea edx, [ebp - 0x40]
mov dword [ebp - 0x40], ebx
mov ecx, dword [eax]
push edx
push 0x4381b8
push eax
call dword [ecx]
mov eax, dword [ebp - 0x10]
mov byte [ebp - 4], 0xc
cmp eax, ebx
je 0x4138ce
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [ebp - 0x40], ebx
mov dword [ebp - 0x10], ebx
je 0x413b6f
mov dword [ebp - 0x1c], ebx
push 0xffffffffffffffff
push 0x4381f8
mov byte [ebp - 4], 0xd
mov word [ebp - 0xa4], 8
call fcn.00411ed7
pop ecx
lea edx, [ebp - 0x10]
pop ecx
lea esi, [ebp - 0xa4]
push edx
mov dword [ebp - 0x9c], eax
sub esp, 0x10
mov eax, dword [ebp - 0x40]
mov edi, esp
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x30]
push dword [ebp - 0x9c]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp dword [ebp - 0x10], ebx
je 0x413b5e
push dword [ebp - 0x10]
lea ecx, [ebp - 0x1c]
call fcn.00417cc0
mov eax, dword [ebp - 0x10]
cmp eax, ebx
je 0x413947
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], ebx
cmp eax, ebx
je 0x413b61
mov ecx, dword [eax]
lea edx, [ebp - 0x58]
push edx
push eax
call dword [ecx + 0x24]
cmp dword [ebp - 0x58], ebx
jle 0x413b5e
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x5c], ebx
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x34], ebx
cmp byte [ebp + 0xf], bl
jne 0x413b3c
mov eax, dword [ebp - 0x34]
lea edx, [ebp - 0x10]
push edx
lea esi, [ebp - 0xb4]
sub esp, 0x10
mov word [ebp - 0xb4], 3
mov edi, esp
mov dword [ebp - 0xac], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
lea esi, [ebp - 0xb4]
mov edi, esp
mov eax, dword [ebp - 0x1c]
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x2c]
cmp dword [ebp - 0x10], ebx
je 0x413b2d
push dword [ebp - 0x10]
lea ecx, [ebp - 0x44]
call fcn.00417e3e
push dword [ebp - 0x10]
lea ecx, [ebp - 0x5c]
call fcn.00417ced
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x10], ebx
cmp eax, ebx
je 0x413b2d
mov esi, dword [ebp - 0x6c]
mov byte [ebp + 0xf], 1
cmp dword [esi + 0x5c], ebx
jle 0x413a15
mov ecx, dword [eax]
lea edx, [ebp - 0x80]
push edx
push eax
call dword [ecx + 0xd0]
mov eax, dword [ebp - 0x80]
cmp eax, dword [esi + 0x5c]
jge 0x413a15
mov byte [ebp + 0xf], bl
cmp dword [esi + 0x58], ebx
jle 0x413a3b
mov eax, dword [ebp - 0x44]
lea edx, [ebp - 0x84]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 0x84]
cmp eax, dword [esi + 0x58]
jge 0x413a3b
mov byte [ebp + 0xf], bl
cmp byte [ebp + 0xf], bl
je 0x413b2d
mov eax, dword [ebp - 0x5c]
mov byte [ebp + 0xf], bl
cmp eax, ebx
je 0x413b2d
mov dword [ebp - 0x18], ebx
mov ecx, dword [eax]
lea edx, [ebp - 0x18]
push edx
push eax
mov byte [ebp - 4], 0x10
call dword [ecx + 0x40]
test eax, eax
jl 0x413b1c
cmp dword [ebp - 0x18], ebx
je 0x413b1c
lea ecx, [ebp - 0x4c]
mov byte [ebp + 0xf], 1
call fcn.00427e77
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x4c]
push edx
push eax
mov ecx, dword [eax]
mov byte [ebp - 4], 0x11
call dword [ecx + 0x210]
test eax, eax
jl 0x413aca
mov esi, dword [0x433054]
mov al, byte [esi]
sub al, 3
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042e9e0
mov eax, esp
push esi
push eax
call fcn.0042bd2b
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x4c]
call fcn.00428443
test eax, eax
je 0x413aca
mov byte [ebp + 0xf], bl
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x4c]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x218]
test eax, eax
jl 0x413b10
mov esi, dword [0x433058]
mov al, byte [esi]
sub al, 3
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042e9e0
mov eax, esp
push esi
push eax
call fcn.0042bd2b
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x4c]
call fcn.00428443
test eax, eax
je 0x413b10
mov byte [ebp + 0xf], bl
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x10
call fcn.00427ed6
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 0xf
cmp eax, ebx
je 0x413b2d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x58]
jl 0x413975
mov eax, dword [ebp - 0x5c]
mov byte [ebp - 4], 0xe
cmp eax, ebx
je 0x413b4d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x44]
mov byte [ebp - 4], 0xd
cmp eax, ebx
je 0x413b5e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
mov byte [ebp - 4], 0xc
je 0x413b6f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x40]
mov byte [ebp - 4], 0xb
cmp eax, ebx
je 0x413b80
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x64]
mov byte [ebp - 4], 0xa
cmp eax, ebx
je 0x413b91
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push 0xd121ffff
push 0x5cabffff
mov dword [0x438c3c], 1
call fcn.0040a933
pop ecx
mov word [0x438c2c], ax
mov al, byte [0x438c1c]
pop ecx
dec al
lea ecx, [ebp - 0x30]
add byte [0x438c21], al
mov byte [ebp - 4], 9
call fcn.00427ed6
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
inc dword [0x438c54]
mov byte [0x438c1d], al
mov al, byte [0x438c4c]
add al, byte [0x438c1a]
add byte [0x438c1e], al
cmp byte [ebp + 0xf], bl
je 0x413c4a
push 0xdecfffff
push 0xd87fffff
push dword [0x438c38]
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [0x438c48], eax
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x7c]
call fcn.00417ae6
movsx eax, word [0x438c24]
push eax
push dword [0x438c40]
call fcn.0040ab0e
add word [0x438c34], ax
pop ecx
movsx ax, byte [0x438c1d]
add eax, dword [0x438c3c]
pop ecx
add word [0x438c2c], ax
movsx eax, byte [0x438c1a]
push eax
call dword [sym.imp.USER32.dll_IsMenu]
push dword [0x438c58]
mov word [0x438c28], ax
push dword [0x438c54]
call fcn.0040a8f9
inc dword [ebp - 0x14]
mov byte [0x438c21], al
mov eax, dword [ebp - 0x14]
pop ecx
cmp eax, dword [ebp - 0x60]
pop ecx
jl 0x41330f
push 0x69e3ffff
push 0x570bffff
mov dword [0x438c50], 0xa4a0001
call fcn.0040a933
mov dword [0x438c4c], eax
mov eax, dword [ebp - 0x24]
pop ecx
cmp eax, ebx
pop ecx
mov byte [ebp - 4], 8
je 0x413cb6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
movsx eax, byte [0x438c1d]
push eax
push dword [0x438c38]
call fcn.0040aa83
push dword [0x438c4c]
mov word [0x438c24], ax
push 0x2559ffff
call fcn.0040aac5
add dword [0x438c58], eax
add esp, 0x10
dec byte [0x438c18]
movsx eax, word [0x438c30]
push eax
mov word [0x438c34], 1
movsx eax, byte [0x438c19]
push eax
call fcn.0040a8f9
add dword [0x438c5c], eax
mov eax, dword [ebp - 0x20]
pop ecx
cmp eax, ebx
pop ecx
mov byte [ebp - 4], 7
je 0x413d25
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
movsx eax, word [0x438c34]
push eax
push 0x5521ffff
call fcn.0040aac5
add word [0x438c32], ax
pop ecx
pop ecx
lea eax, [ebp - 0x7c]
mov ecx, dword [ebp + 8]
push eax
call fcn.00417d5e
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x68], 1
cmp eax, ebx
mov byte [ebp - 4], 3
je 0x413d64
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x38]
mov byte [ebp - 4], 2
cmp eax, ebx
je 0x413d86
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x413d86
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x7c]
push eax
call fcn.00417d5e
mov dword [ebp - 0x68], edi
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 1
cmp eax, ebx
je 0x413d97
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], bl
call fcn.0041e670
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc0]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret 0xc