Function at 0x41e119
Capabilities:
Accept command line arguments
Identify system language via api
Parse pe header

Disassembly:
movsx ax, byte [0x43ac78]
or ax, word [0x43ac84]
push ebx
push ebp
push esi
mov word [0x43ac8c], ax
push edi
movsx eax, word [0x43ac92]
imul eax, eax, 0xdd09ffff
mov dword [0x43acb0], eax
movsx eax, byte [0x43ac7e]
push eax
push dword [0x43aca8]
call fcn.0040b0ac
pop ecx
mov word [0x43ac84], ax
pop ecx
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_IsBadCodePtr]
test eax, eax
jne 0x41e22c
movsx eax, byte [0x43ac7f]
push eax
push 0x2447ffff
call fcn.0040b0f0
add dword [0x43acb4], eax
pop ecx
pop ecx
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push 0xc4a9ffff
mov ebp, eax
push dword [0x43aca0]
call fcn.0040b0ac
add byte [0x43ac7f], al
mov esi, 0x80000000
pop ecx
cmp ebp, esi
pop ecx
mov edi, 0xc0000000
jb 0x41e1cf
cmp ebp, edi
jae 0x41e1cf
push 0x4c
call fcn.0040f588
pop ecx
call eax
test esi, eax
jne 0x41e22c
mov al, byte [0x43ac8c]
push dword [esp + 0x18]
add byte [0x43ac7d], al
mov ax, word [0x43ac88]
dec word [0x43ac94]
dec ax
add word [0x43ac86], ax
push ebp
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebx, eax
push 0xc779ffff
movsx ax, byte [0x43ac7b]
dec eax
push 0x2d51ffff
add word [0x43ac90], ax
mov dword [esp + 0x20], ebx
call fcn.0040af32
pop ecx
mov word [0x43ac8e], ax
test ebx, ebx
pop ecx
jne 0x41e233
xor eax, eax
jmp 0x41e68b
movsx ax, byte [0x43ac81]
and eax, dword [0x43acb8]
push 0x4c
add word [0x43ac88], ax
mov al, byte [0x43ac7e]
dec al
add byte [0x43ac7f], al
call fcn.0040f588
pop ecx
call eax
and eax, edi
cmp eax, esi
jne 0x41e26e
push ebp
call fcn.0041e692
pop ecx
mov ebp, eax
movsx eax, byte [0x43ac80]
mov ecx, dword [0x43aca0]
mov edi, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
dec word [0x43ac84]
push 0x40
lea eax, [ecx + eax - 0x510c0001]
push ebp
mov dword [0x43aca0], eax
call edi
test eax, eax
jne 0x41e349
movsx eax, byte [0x43ac7c]
push eax
push dword [0x43acb4]
call fcn.0040af32
push 0xc81ffff
mov dword [0x43aca0], eax
push dword [0x43aca4]
call fcn.0040aeeb
add dword [0x43acb8], eax
add esp, 0x10
cmp word [ebp], 0x5a4d
jne 0x41e349
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
add byte [0x43ac81], al
push dword [ebp + 0x3c]
push ebp
call fcn.0041d190
pop ecx
mov esi, eax
pop ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp byte [0x43ac79], 0
mov dword [0x43aca0], eax
je 0x41e316
cmp word [0x43ac82], 0
je 0x41e316
push 1
pop eax
jmp 0x41e318
xor eax, eax
add word [0x43ac92], ax
push 0xf8
push esi
call edi
test eax, eax
jne 0x41e349
movsx eax, word [0x43ac94]
movsx ecx, word [0x43ac84]
sub ecx, eax
add dword [0x43acb0], ecx
cmp dword [esi], 0x4550
je 0x41e350
mov eax, ebx
jmp 0x41e68b
inc byte [0x43ac7f]
push eax
movsx eax, byte [0x43ac7b]
push eax
call fcn.0040b0ac
add dword [0x43acb4], eax
push 0x892dffff
push 0xe809ffff
call fcn.0040b002
add word [0x43ac8e], ax
push dword [esi + 0x78]
push ebp
call fcn.0041d190
mov esi, eax
push 0x8c21ffff
movsx eax, byte [0x43ac7a]
push eax
xor edi, edi
call fcn.0040af94
add word [0x43ac94], ax
add esp, 0x20
call dword [sym.imp.USER32.dll_GetForegroundWindow]
add byte [0x43ac79], al
call dword [sym.imp.USER32.dll_GetInputState]
mov byte [0x43ac7a], al
push dword [esi + 0x1c]
push ebp
call fcn.0041d190
push dword [0x43ac98]
inc word [0x43ac88]
mov ebx, eax
push 0x9e07ffff
call fcn.0040b037
add dword [0x43aca8], eax
movsx eax, byte [0x43ac7d]
push eax
push dword [0x43acac]
call fcn.0040b002
add word [0x43ac82], ax
add esp, 0x18
cmp dword [esi + 0x14], edi
jbe 0x41e49c
mov dword [esp + 0x14], ebx
movsx eax, word [0x43ac8a]
push 0xe0ebffff
push eax
call fcn.0040af32
pop ecx
mov word [0x43ac88], ax
neg ax
pop ecx
mov word [0x43ac82], ax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov word [0x43ac8a], ax
mov eax, dword [esp + 0x14]
push dword [eax]
push ebp
call fcn.0041d190
dec word [0x43ac86]
cmp eax, dword [esp + 0x20]
pop ecx
mov dword [0x43acac], 1
pop ecx
je 0x41e49c
mov eax, dword [0x43ac9c]
push dword [0x43acb8]
add eax, 0x31bdffff
push 0xa99dffff
mov dword [0x43acb0], eax
call fcn.0040b0ac
add byte [0x43ac80], al
add dword [esp + 0x1c], 4
inc edi
pop ecx
cmp edi, dword [esi + 0x14]
pop ecx
jb 0x41e412
movsx eax, word [0x43ac8a]
imul eax, eax, 0x8d6bffff
mov dword [0x43acbc], eax
movsx eax, byte [0x43ac80]
push eax
movsx eax, byte [0x43ac81]
push eax
call fcn.0040b0f0
mov dword [0x43acb4], eax
mov eax, dword [0x43acb8]
sub word [0x43ac88], ax
add ax, word [0x43ac94]
push 0x9d59ffff
push 0x92adffff
mov word [0x43ac86], ax
call fcn.0040aeeb
push dword [0x43acb8]
mov dword [0x43acbc], eax
movsx eax, byte [0x43ac81]
push eax
call fcn.0040b002
add byte [0x43ac7e], al
add esp, 0x18
cmp edi, dword [esi + 0x14]
jae 0x41e63b
push 0xe87dffff
push 0x891ffff
call fcn.0040b037
push 0xf145ffff
push 0x8bffff
mov word [0x43ac94], ax
call fcn.0040afcb
add dword [0x43aca4], eax
mov al, byte [0x43ac88]
mov ecx, dword [0x43acac]
mov dl, byte [0x43ac81]
imul cl
mov byte [0x43ac7d], al
add dl, al
movsx ax, byte [0x43ac7e]
add eax, dword [0x43aca0]
add esp, 0x10
and dword [esp + 0x14], 0
lea esi, [ebx + edi*4]
mov word [0x43ac8a], ax
lea eax, [esp + 0x14]
push eax
push 4
push 4
and ecx, 0x9037ffff
push esi
push 0x5e
mov word [0x43ac8e], 1
mov byte [0x43ac7f], dl
mov dword [0x43acbc], ecx
call fcn.0040f588
pop ecx
call eax
mov edi, eax
movsx eax, byte [0x43ac78]
push eax
movsx eax, byte [0x43ac7b]
push eax
call fcn.0040b0ac
add byte [0x43ac7a], al
pop ecx
test edi, edi
pop ecx
je 0x41e608
movsx eax, byte [0x43ac80]
push eax
push 0xa443ffff
call fcn.0040afcb
add word [0x43ac8a], ax
mov eax, dword [esp + 0x24]
sub eax, ebp
pop ecx
mov dword [esi], eax
pop ecx
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x18]
push 4
push esi
push 0x5e
call fcn.0040f588
pop ecx
call eax
push 0x8c79ffff
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
add word [0x43ac8e], ax
inc word [0x43ac88]
push 0xa69ffff
push 0x34c7ffff
call fcn.0040b087
add word [0x43ac8a], ax
pop ecx
pop ecx
jmp 0x41e687
mov al, byte [0x43ac84]
mov dword [0x43acb4], 0xefa7ffff
mov byte [0x43ac7d], al
xor eax, eax
cmp dword [0x43aca0], eax
setne al
add byte [0x43ac7f], al
cmp dword [0x43aca8], 0
jne 0x41e676
cmp byte [0x43ac78], 0
jne 0x41e676
xor eax, eax
jmp 0x41e679
push 1
pop eax
add word [0x43ac86], ax
or byte [0x43ac7b], 0xff
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
ret 0xc