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

Disassembly:
mov al, byte [0x438c20]
sub esp, 0x400
add byte [0x438c1a], al
push ebx
push ebp
push esi
push edi
mov edi, ecx
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov dword [0x438c5c], eax
push 0xac17ffff
movsx eax, word [0x438c2e]
push eax
call fcn.0040a96f
add byte [0x438c1b], al
push 0x421dffff
movsx eax, byte [0x438c1e]
push eax
call fcn.0040a933
mov byte [0x438c20], al
push 0x1a85ffff
movsx eax, word [0x438c28]
push eax
call fcn.0040a9de
mov ebx, dword [sym.imp.USER32.dll_GetActiveWindow]
add word [0x438c24], ax
add esp, 0x18
call ebx
add word [0x438c28], ax
dec byte [0x438c21]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov esi, dword [esp + 0x414]
add word [0x438c30], ax
mov ecx, edi
mov eax, dword [esi + 0x18]
add eax, esi
push eax
call fcn.0040ab4e
push eax
lea eax, [esp + 0x14]
push eax
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
call ebx
add byte [0x438c21], al
call dword [sym.imp.USER32.dll_GetInputState]
add byte [0x438c18], al
mov ebp, dword [esi + 0x10]
movsx eax, byte [0x438c20]
push 0xbfc5ffff
push eax
add ebp, esi
call fcn.0040ab0e
dec byte [0x438c1d]
dec byte [0x438c18]
pop ecx
mov byte [0x438c20], al
mov ebx, dword [esi + 0x14]
pop ecx
add ebx, esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add byte [0x438c19], al
movsx eax, byte [0x438c21]
push eax
push 0xc901ffff
call fcn.0040a8f9
mov dword [0x438c4c], eax
movsx eax, byte [0x438c19]
push eax
push 0xfca3ffff
call fcn.0040a96f
add byte [0x438c1a], al
push 0x848bffff
movsx eax, byte [0x438c1e]
push eax
call fcn.0040a933
add esp, 0x18
mov dword [0x438c4c], eax
cmp byte [edi], 0
mov esi, 0x400
jne 0x40b361
cmp byte [ebp], 0
je 0x40b361
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
add byte [0x438c19], al
push esi
push ebp
push edi
call sub.MSVCRT.dll_memcpy
movsx eax, byte [0x438c1c]
push 0x80c9ffff
push eax
call fcn.0040a96f
mov dword [0x438c54], eax
movsx eax, word [0x438c22]
push eax
movsx eax, byte [0x438c18]
push eax
call fcn.0040a9de
movsx ecx, word [0x438c2e]
push ecx
push eax
mov dword [0x438c54], eax
call fcn.0040aa4f
add dword [0x438c50], eax
and byte [edi + 0x3ff], 0
movsx eax, byte [0x438c1a]
push 0x6307ffff
push eax
call fcn.0040a8f9
mov word [0x438c24], ax
add esp, 0x2c
movsx eax, ax
imul eax, eax, 0x39a3ffff
mov dword [0x438c4c], eax
mov ax, word [0x438c2a]
dec ax
mov word [0x438c2c], ax
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ebp, [edi + 0x400]
mov dword [0x438c38], eax
cmp byte [ebp], 0
jne 0x40b3d9
cmp byte [ebx], 0
je 0x40b3d9
movsx eax, word [0x438c32]
push eax
movsx eax, byte [0x438c1f]
push eax
call fcn.0040ab0e
push 0xd15ffff
push 0x1695ffff
mov dword [0x438c38], eax
call fcn.0040ab0e
add word [0x438c22], ax
push esi
push ebx
push ebp
call sub.MSVCRT.dll_memcpy
add esp, 0x1c
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov word [0x438c34], ax
and byte [edi + 0x7ff], 0
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movzx eax, ax
mov dword [0x438c58], eax
movsx eax, word [0x438c2e]
push dword [0x438c48]
push eax
call fcn.0040aa83
add word [0x438c2a], ax
mov ecx, dword [0x438c4c]
movsx eax, word [0x438c2a]
push 0xbefdffff
push dword [0x438c40]
lea eax, [ecx + eax + 0x4c260001]
mov dword [0x438c4c], eax
call fcn.0040a96f
lea ebx, [edi + 0x800]
add esp, 0x10
mov byte [0x438c1e], al
cmp byte [ebx], 0
jne 0x40b493
cmp byte [esp + 0x10], 0
je 0x40b493
movsx eax, word [0x438c22]
push eax
push 0xc527ffff
call fcn.0040a96f
add dword [0x438c44], eax
pop ecx
movsx eax, word [0x438c24]
pop ecx
movsx ecx, byte [0x438c1e]
sub ecx, eax
add dword [0x438c5c], ecx
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov byte [0x438c21], al
lea eax, [esp + 0x10]
push esi
push eax
push ebx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
inc dword [0x438c4c]
and byte [edi + 0xbff], 0
dec byte [0x438c18]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x400
ret 4