Function at 0x419de5
Capabilities:
Identify system language via api
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x431660
push 0x42c600
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x60
push ebx
push esi
push edi
mov dword [ebp - 0x18], esp
movsx eax, byte [0x437bf0]
imul eax, eax, 0x4505ffff
add dword [0x437c20], eax
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x41a008
push dword [0x437c0c]
movsx eax, byte [0x437bec]
push eax
call fcn.0040fede
pop ecx
pop ecx
add byte [0x437bee], al
dec byte [0x437beb]
and dword [ebp - 0x20], 0
mov al, byte [0x437c04]
and al, byte [0x437bf1]
add byte [0x437bea], al
mov ax, word [0x437bfa]
dec ax
add word [0x437bf8], ax
push dword [ebp + 0x14]
call dword [sym.imp.KERNEL32.dll_IsBadCodePtr]
test eax, eax
jne 0x41a008
push 0x9c7dffff
push 0x7b5dffff
call fcn.0041004e
add dword [0x437c10], eax
push 0xeee7ffff
movsx eax, word [0x437bf2]
push eax
call fcn.0040fede
add esp, 0x10
mov word [0x437c02], ax
push 1
pop edi
mov dword [0x437c2c], edi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x28], eax
test eax, eax
je 0x41a008
mov byte [0x437bef], 1
push 0x4d
call fcn.0041448a
pop ecx
call eax
and eax, 0xc0000000
cmp eax, 0x80000000
jne 0x419efc
push ebx
call fcn.0041b272
pop ecx
mov ebx, eax
mov dword [ebp - 0x1c], ebx
inc word [0x437bf8]
mov eax, dword [0x437c2c]
dec eax
mov word [0x437c02], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add byte [0x437bee], al
push 0x40
push ebx
mov esi, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
call esi
test eax, eax
jne 0x41a008
push 0xda65ffff
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov byte [0x437bee], al
mov dword [0x437c10], 0x281ffff
or word [0x437bf2], 0xffff
cmp word [ebx], 0x5a4d
jne 0x41a008
movsx ecx, word [0x437bfa]
sub ecx, 0x1acbffff
cmp byte [0x437beb], 0
jne 0x419f7e
xor edx, edx
cmp dword [0x437c20], edx
je 0x419f80
mov edx, edi
add word [0x437bf6], dx
xor edx, edx
test al, al
setne dl
mov eax, edx
add ecx, eax
mov dword [0x437c10], ecx
push dword [ebx + 0x3c]
push ebx
call fcn.00419d99
mov edi, eax
mov dword [ebp - 0x24], edi
mov al, byte [0x437bf6]
add al, byte [0x437c14]
mov byte [0x437be8], al
push dword [0x437c0c]
movsx eax, al
push eax
call fcn.00410092
add esp, 0x10
add word [0x437c04], ax
mov word [0x437bf2], 1
push pe_nt_image_headers32
push edi
call esi
test eax, eax
jne 0x41a008
movsx eax, byte [0x437bea]
push eax
movsx eax, word [0x437c02]
push eax
call fcn.0040ff78
pop ecx
pop ecx
mov byte [0x437bf1], al
cmp dword [edi], 0x4550
je 0x41a00f
xor eax, eax
jmp 0x41aa9b
inc word [0x437bf8]
push dword [edi + 0x80]
push ebx
call fcn.00419d99
mov esi, eax
mov dword [ebp - 0x2c], esi
mov al, byte [0x437c08]
add al, byte [0x437bee]
add byte [0x437bec], al
movsx eax, word [0x437bfe]
push eax
push 0x35cbffff
call fcn.00410016
add esp, 0x10
add byte [0x437bf0], al
cmp esi, ebx
je 0x41a492
push dword [0x437c18]
push 0xed25ffff
call fcn.0040ff1a
pop ecx
pop ecx
add dword [0x437c1c], eax
call dword [sym.imp.USER32.dll_GetCapture]
mov word [0x437c02], ax
cmp esi, edi
je 0x41a492
mov eax, dword [0x437c14]
imul eax, eax, 0xe4f1ffff
mov dword [0x437c1c], eax
movsx ecx, byte [0x437bed]
movsx edx, byte [0x437be9]
sub edx, ecx
mov dword [0x437c18], edx
push dword [0x437c08]
push eax
call fcn.0040ff78
pop ecx
pop ecx
mov word [0x437bf8], ax
xor edi, edi
mov dword [ebp - 4], edi
cmp word [0x437bf2], di
je 0x41a0dd
cmp byte [0x437be8], 0
je 0x41a0dd
push 1
pop eax
jmp 0x41a0df
xor eax, eax
mov dword [0x437c2c], eax
push 0xb123ffff
call dword [sym.imp.USER32.dll_IsMenu]
add byte [0x437bf1], al
movsx eax, word [0x437c02]
push eax
push dword [0x437c0c]
call fcn.00410092
pop ecx
pop ecx
mov byte [0x437be9], al
cmp dword [esi + 0xc], edi
je 0x41a1fe
mov dword [ebp - 4], 1
push 0x4c91ffff
push 0x8207ffff
call fcn.0041004e
mov byte [0x437be8], al
push 0x4ffdffff
movsx eax, word [0x437c04]
push eax
call fcn.00410092
mov word [0x437bfa], ax
push dword [esi + 0xc]
push ebx
call fcn.00419d99
add esp, 0x18
mov dword [ebp - 0x38], eax
mov ax, word [0x437c00]
imul eax, eax, 0x3a45ffff
mov word [0x437bfe], ax
lea eax, [ebp - 0x34]
push eax
push 4
push 0x20
lea eax, [ebp - 0x38]
push eax
push 0x5e
call fcn.0041448a
pop ecx
call eax
mov dword [ebp - 0x3c], eax
push 0x127dffff
push dword [0x437c20]
call fcn.00410016
mov byte [0x437bea], al
push dword [ebp + 0xc]
push dword [ebp - 0x38]
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 0x10
test eax, eax
jne 0x41a2e8
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov byte [0x437bed], al
mov al, byte [0x437beb]
shl al, 1
inc al
mov byte [0x437beb], al
movsx eax, word [0x437bf8]
imul eax, dword [0x437c18]
mov dword [0x437c0c], eax
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x34]
push 0x20
lea eax, [ebp - 0x38]
push eax
push 0x5e
call fcn.0041448a
pop ecx
call eax
inc word [0x437bf4]
mov dword [ebp - 4], edi
or dword [ebp - 4], 0xffffffff
cmp dword [esi + 0xc], edi
je 0x41a492
push dword [esi + 0x10]
push ebx
call fcn.00419d99
mov esi, eax
movsx eax, byte [0x437bed]
push eax
movsx eax, byte [0x437bea]
push eax
call fcn.0040ff1a
add byte [0x437be9], al
push dword [0x437c20]
movsx eax, word [0x437c04]
push eax
call fcn.0041004e
add esp, 0x18
mov word [0x437bf4], ax
dec word [0x437bf6]
cmp dword [esi], edi
je 0x41a492
push 0x13bdffff
movsx eax, byte [0x437be8]
push eax
call fcn.0040ffc6
add byte [0x437be9], al
movsx eax, byte [0x437bee]
push eax
push 0xaa57ffff
call fcn.00410016
add esp, 0x10
add word [0x437bfa], ax
movsx eax, word [0x437bf4]
mov ecx, 0xfd3dffff
sub ecx, eax
mov dword [0x437c20], ecx
mov eax, dword [ebp - 0x28]
cmp dword [esi], eax
je 0x41a365
add esi, 4
mov word [0x437c04], 1
mov al, byte [0x437bed]
and al, byte [0x437be9]
add byte [0x437bf1], al
push 0x527dffff
push 0x785bffff
call fcn.00410092
pop ecx
pop ecx
add dword [0x437c08], eax
jmp 0x41a254
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x34]
push 0x20
lea eax, [ebp - 0x38]
push eax
push 0x5e
call fcn.0041448a
pop ecx
call eax
mov dword [ebp - 4], edi
jmp 0x41a348
xor eax, eax
cmp word [0x437bf6], di
setne al
add byte [0x437bf1], al
add esi, 0x14
mov dword [ebp - 0x2c], esi
jmp 0x41a10f
movsx eax, byte [0x437bed]
push eax
push 0x14cbffff
call fcn.0040ffe3
pop ecx
pop ecx
add dword [0x437c24], eax
mov al, byte [0x437bee]
dec al
add byte [0x437bea], al
lea eax, [ebp - 0x40]
push eax
push 4
push 4
push esi
push 0x5e
call fcn.0041448a
pop ecx
call eax
mov dword [ebp - 0x44], eax
movsx eax, byte [0x437be9]
push eax
push 0x1a09ffff
call fcn.0040ffe3
pop ecx
pop ecx
mov byte [0x437bf0], al
call dword [sym.imp.USER32.dll_GetFocus]
add dword [0x437c18], eax
mov al, byte [0x437bfc]
and al, byte [0x437bee]
mov byte [0x437be8], al
cmp dword [ebp - 0x44], edi
je 0x41a446
mov eax, dword [ebp + 0x14]
mov dword [esi], eax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov byte [0x437bed], al
call dword [sym.imp.USER32.dll_GetInputState]
add byte [0x437bec], al
mov dword [0x437c18], 1
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
push 4
push esi
push 0x5e
call fcn.0041448a
pop ecx
call eax
sub dword [0x437c28], 0x40cc0000
push 0x3d35ffff
movsx eax, byte [0x437bee]
push eax
call fcn.004100bc
pop ecx
pop ecx
mov dword [0x437c24], eax
inc word [0x437bf6]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x20], eax
call dword [sym.imp.USER32.dll_GetInputState]
add word [0x437c04], ax
jmp 0x41a492
push 0x5fabffff
push dword [0x437c14]
call fcn.0040ff4b
add byte [0x437bef], al
movsx eax, byte [0x437bf1]
push eax
push 0xb877ffff
call fcn.00410016
mov byte [0x437be9], al
push dword [0x437c08]
push 0xce7ffff
call fcn.0040ffe3
mov word [0x437c00], ax
or ax, 0xffff
sub ax, word [0x437bf2]
mov word [0x437bfa], ax
mov esi, dword [ebp - 0x24]
push dword [esi + 0xe0]
push ebx
call fcn.00419d99
mov edi, eax
mov dword [ebp - 0x48], edi
movsx eax, byte [0x437bec]
push eax
movsx eax, word [0x437bf4]
push eax
call fcn.0040ffe3
mov dword [0x437c14], eax
push 0x60dfffff
push dword [0x437c28]
call fcn.0041004e
add word [0x437bfe], ax
push dword [0x437c10]
push 0xac41ffff
call fcn.0040ffe3
add esp, 0x38
mov dword [0x437c10], eax
cmp edi, ebx
je 0x41aa78
movsx eax, byte [0x437bef]
push eax
movsx eax, word [0x437bfa]
push eax
call fcn.0040ff78
pop ecx
pop ecx
add dword [0x437c2c], eax
cmp edi, esi
je 0x41aa78
movsx eax, word [0x437c04]
push eax
push 0x33f7ffff
call fcn.0040ffc6
pop ecx
pop ecx
mov byte [0x437bef], al
push 2
pop esi
mov dword [ebp - 4], esi
xor ebx, ebx
cmp dword [edi + 4], ebx
je 0x41a688
cmp dword [0x437c08], ebx
je 0x41a5af
cmp dword [0x437c0c], ebx
je 0x41a5af
push 1
pop eax
jmp 0x41a5b1
xor eax, eax
add word [0x437bfa], ax
inc byte [0x437bed]
mov dword [ebp - 4], 3
push dword [edi + 4]
push dword [ebp - 0x1c]
call fcn.00419d99
mov dword [ebp - 0x58], eax
push 0xc769ffff
push 0x4c51ffff
call fcn.0040fede
add esp, 0x10
mov word [0x437bfc], ax
mov byte [0x437bef], 1
lea eax, [ebp - 0x54]
push eax
push 4
push 0x20
lea eax, [ebp - 0x58]
push eax
push 0x5e
call fcn.0041448a
pop ecx
call eax
mov dword [ebp - 0x5c], eax
push dword [ebp + 0xc]
push dword [ebp - 0x58]
call dword [sym.imp.MSVCRT.dll__stricmp]
pop ecx
pop ecx
test eax, eax
jne 0x41a75f
inc word [0x437bf6]
movsx eax, word [0x437bfe]
push eax
push 0x5427ffff
call fcn.0040ffe3
pop ecx
pop ecx
mov byte [0x437bec], al
lea eax, [ebp - 0x54]
push eax
push dword [ebp - 0x54]
push 0x20
lea eax, [ebp - 0x58]
push eax
push 0x5e
call fcn.0041448a
pop ecx
call eax
mov ax, word [0x437bf6]
sub eax, 0x3f5a0001
mov byte [0x437bef], al
call dword [sym.imp.KERNEL32.dll_GetLastError]
add dword [0x437c2c], eax
movsx eax, byte [0x437bec]
or eax, 0x12b3ffff
mov dword [0x437c24], eax
mov dword [ebp - 4], esi
or dword [ebp - 4], 0xffffffff
cmp dword [0x437c2c], ebx
je 0x41a6a6
cmp dword [0x437c0c], ebx
mov dword [0x437c0c], 1
jne 0x41a6ac
mov dword [0x437c0c], ebx
xor eax, eax
cmp word [0x437bf4], bx
setne al
add word [0x437c02], ax
mov eax, dword [0x437c20]
add eax, 0x4b8bffff
mov dword [0x437c10], eax
cmp dword [edi + 4], ebx
je 0x41aa78
push 0x97adffff
push 0x5fd1ffff
call fcn.00410016
add word [0x437bf8], ax
push dword [edi + 0x10]
push dword [ebp - 0x1c]
call fcn.00419d99
add esp, 0x10
mov esi, eax
xor ebx, ebx
cmp dword [esi], 0
je 0x41a9e4
push 0x6821ffff
push 0xc00fffff
call fcn.0040ff1a
pop ecx
pop ecx
add byte [0x437bec], al
test byte [esi + 3], 0x80
je 0x41a7e6
mov byte [0x437beb], 1
movsx eax, byte [0x437bf1]
push eax
push 0x678fffff
call fcn.0040ffc6
pop ecx
pop ecx
mov word [0x437bf8], ax
mov eax, dword [0x437c08]
imul eax, eax, 0x9f2dffff
mov dword [0x437c28], eax
jmp 0x41a835
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov word [0x437bf6], ax
or word [0x437bf2], 0xffff
movsx eax, byte [0x437be9]
push eax
movsx eax, byte [0x437be8]
push eax
call fcn.0040ff78
pop ecx
pop ecx
mov byte [0x437be9], al
lea eax, [ebp - 0x54]
push eax
push dword [ebp - 0x54]
push 0x20
lea eax, [ebp - 0x58]
push eax
push 0x5e
call fcn.0041448a
pop ecx
call eax
mov dword [ebp - 4], esi
jmp 0x41a7db
add edi, 0x20
mov dword [ebp - 0x48], edi
jmp 0x41a591
or word [0x437bf4], 0xffff
mov eax, dword [esi]
mov cl, byte [0x437c02]
mov byte [0x437bef], cl
add eax, 2
push eax
push dword [ebp - 0x1c]
call fcn.00419d99
mov dword [ebp - 0x60], eax
push dword [0x437c18]
push 0x7dfbffff
call fcn.0040fede
add word [0x437bfe], ax
push dword [ebp + 0x10]
push dword [ebp - 0x60]
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 0x18
test eax, eax
je 0x41a87a
mov ax, word [0x437bfa]
sub word [0x437c04], ax
push 0x3e8fffff
push 0xda67ffff
call fcn.0040ff78
mov word [0x437c04], ax
push dword [0x437c24]
push dword [0x437c10]
call fcn.00410016
add esp, 0x10
add dword [0x437c08], eax
add esi, 4
inc ebx
jmp 0x41a6ff
dec word [0x437bf6]
push 0xfb97ffff
movsx eax, byte [0x437bef]
push eax
call fcn.00410092
add word [0x437bfe], ax
push dword [edi + 0xc]
push dword [ebp - 0x1c]
call fcn.00419d99
mov esi, eax
push dword [0x437c0c]
push dword [0x437c18]
call fcn.0041004e
add esp, 0x18
mov byte [0x437bf0], al
lea esi, [esi + ebx*4]
lea eax, [ebp - 0x68]
push eax
push 4
push 4
push esi
push 0x5e
call fcn.0041448a
pop ecx
call eax
mov edi, eax
mov eax, dword [0x437c28]
and ax, word [0x437bf8]
mov word [0x437c04], ax
push 0x417bffff
push dword [0x437c14]
call fcn.0040ffc6
mov byte [0x437bf1], al
push dword [0x437c18]
push 0xa7cbffff
call fcn.0040ff4b
add esp, 0x10
mov word [0x437bfe], ax
test edi, edi
je 0x41a9e4
mov eax, dword [ebp + 0x14]
mov dword [esi], eax
push 0x4733ffff
push 0xb427ffff
call fcn.0041004e
mov byte [0x437bef], al
movsx eax, word [0x437bf4]
push eax
push 0x22f7ffff
call fcn.00410092
mov byte [0x437bec], al
movsx eax, word [0x437bfa]
push eax
push eax
call fcn.00410092
add esp, 0x18
mov dword [0x437c10], eax
lea eax, [ebp - 0x68]
push eax
push dword [ebp - 0x68]
push 4
push esi
push 0x5e
call fcn.0041448a
pop ecx
call eax
movsx ax, byte [0x437bf1]
dec eax
add word [0x437bfe], ax
push 0x3479ffff
push dword [0x437c14]
call fcn.0040ff78
add byte [0x437bef], al
push 0xd4fffff
push 0x77e1ffff
call fcn.0040fede
add esp, 0x10
mov byte [0x437bf1], al
cmp dword [ebp - 0x20], 0
jne 0x41a9c3
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x20], eax
movsx eax, word [0x437bfe]
or eax, 0xdf55ffff
add dword [0x437c14], eax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx eax, ax
add dword [0x437c08], eax
xor eax, eax
cmp word [0x437bf4], ax
setne al
mov word [0x437bfc], ax
push 0xc943ffff
movsx eax, byte [0x437beb]
push eax
call fcn.0040ff1a
mov byte [0x437bef], al
movsx eax, word [0x437c00]
push eax
push 0xbc3ffff
call fcn.0040fede
add esp, 0x10
add word [0x437c02], ax
jmp 0x41aa78
push 0x4fa9ffff
push 0x96fffff
call fcn.00410092
pop ecx
pop ecx
mov byte [0x437bea], al
mov dword [0x437c10], 0xfeffffff
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret 0x10