Function at 0x51e1306c
Capabilities:
Identify system language via api

Disassembly:
mov eax, dword [eax + 8]
test ah, 2
jne 0x51e1311c
and eax, 0xc00
cmp eax, 0x400
jne 0x51e1311c
mov eax, dword [0x51e8b69c]
test eax, eax
je 0x51e2a644
cmp dword [eax + 0x53bc], 0
jne 0x51e2a66e
test byte [eax + 0x53b6], 0x3c
jne 0x51e2a66e
push dword [ebp + 0x1bc]
push edi
push dword [ebp + 0x1b0]
call fcn.51e16dfd
mov ecx, dword [0x51e8c348]
mov edx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x68]
add esp, 0xc
cmp byte [ecx + 0x118], 0
mov dword [ebp - 0x74], eax
jne 0x51e2a685
cmp dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x70]
jg 0x51e06af3
mov ecx, eax
cmp esi, ecx
jl 0x51e2a6ac
cmp dword [ebp - 0x70], eax
jg 0x51e06b03
mov dword [ebp - 0x70], eax
mov dword [ebp + 0x1b0], edi
jmp 0x51e1312b
push ebp
lea ebp, [esp - 0x1a4]
sub esp, 0x224
mov eax, dword [0x51e8c240]
push ebx
push esi
mov dword [ebp + 0x1a0], eax
mov eax, dword [0x51e8c348]
push edi
push dword [eax]
call dword [sym.imp.USER32.dll_HideCaret]
mov eax, dword [0x51e8c348]
lea esi, [eax + 0xa8]
lea edi, [ebp - 0x70]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 0x10]
imul ecx, dword [ebp + 0x1ac]
cmp byte [eax + 0x118], 0
jne 0x51e2a618
mov edx, dword [eax + 0xc]
mov edx, dword [edx + 0x1c]
add edx, ecx
add edx, dword [ebp - 0x6c]
add dword [ebp - 0x6c], ecx
mov ecx, dword [eax + 0x10]
add ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x7c], edx
cmp dword [ebp - 0x64], ecx
jl 0x51e130e3
mov eax, dword [eax + 0x10]
add eax, dword [ebp - 0x6c]
mov dword [ebp - 0x64], eax
push dword [ebp + 0x1b4]
push dword [ebp + 0x1b0]
call fcn.51e0e265
mov dword [ebp + 0x1b4], eax
mov eax, dword [0x51e8c348]
cmp dword [eax + 0x15c], 0
pop ecx
pop ecx
jne 0x51e1311c
mov edi, dword [ebp + 0x1b8]
cmp edi, dword [ebp + 0x1b0]
ja 0x51e06a75
push dword [ebp + 0x1bc]
call fcn.51e16386
pop ecx
mov dword [ebp - 0x74], eax
mov edi, dword [ebp + 0x1b4]
mov eax, dword [0x51e8c348]
sub edi, dword [ebp + 0x1b0]
test byte [eax + 8], 2
mov ebx, dword [eax + 4]
jne 0x51e2a6b4
push 2
pop esi
mov eax, dword [0x51e8c348]
test byte [eax + 8], 0x40
jne 0x51e2a6dd
mov eax, dword [0x51e8c344]
push dword [eax]
call fcn.51e1637c
pop ecx
mov ecx, dword [ebp + 0x1b0]
lea eax, [eax + ecx*2]
mov dword [ebp - 0x78], eax
mov eax, dword [0x51e8b69c]
push 0
push dword [eax + 0x5c]
push ebx
call dword [sym.imp.GDI32.dll_SelectPalette]
test edi, edi
mov dword [ebp - 0x80], eax
je 0x51e1319b
push edi
call fcn.51e115e1
test eax, eax
pop ecx
jne 0x51e2a709
mov eax, dword [0x51e8b69c]
test eax, eax
je 0x51e2a76e
cmp dword [eax + 0x53bc], 0
jne 0x51e13222
test byte [eax + 0x53b6], 0x3c
jne 0x51e13222
mov eax, dword [0x51e8c348]
push 0
push edi
push dword [ebp - 0x78]
or esi, 0x40000000
cmp byte [eax + 0x118], 0
lea eax, [ebp - 0x70]
push eax
jne 0x51e2a7b3
or esi, 4
push esi
push dword [ebp - 0x7c]
push dword [ebp - 0x74]
push ebx
call dword [0x51e8b55c]
cmp dword [ebp - 0x80], 0
je 0x51e131ff
push 0
push dword [ebp - 0x80]
push ebx
call dword [sym.imp.GDI32.dll_SelectPalette]
mov eax, dword [0x51e8c348]
push dword [eax]
call dword [sym.imp.USER32.dll_ShowCaret]
mov ecx, dword [ebp + 0x1a0]
pop edi
pop esi
pop ebx
call fcn.51e03d50
add ebp, 0x1a4
leave
ret
mov eax, dword [0x51e8a120]
test eax, eax
je 0x51e131ba
jmp 0x51e2a7bf
mov edx, dword [ebp - 0x68]
mov esi, dword [eax + 0xc]
sub edx, ecx
mov ecx, edx
sub ecx, dword [esi + 0x1c]
mov dword [ebp - 0x7c], ecx
mov ecx, edx
mov dword [ebp - 0x68], ecx
sub edx, dword [eax + 0x10]
cmp dword [ebp - 0x70], edx
jg 0x51e130e3
sub ecx, dword [eax + 0x10]
mov dword [ebp - 0x70], ecx
jmp 0x51e130e3
mov esi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
call esi
cmp ax, 0x411
je 0x51e2a66e
call esi
cmp ax, 0x404
je 0x51e2a66e
call esi
cmp ax, 0x412
je 0x51e2a66e
call esi
cmp ax, 0x804
jne 0x51e06ab8
mov eax, dword [0x51e8c348]
test byte [eax + 0x11c], 1
jne 0x51e1311c
jmp 0x51e06ab8
cmp dword [ebp - 0x6c], eax
mov ecx, dword [ebp - 0x6c]
jg 0x51e2a68f
mov ecx, eax
cmp edx, ecx
jge 0x51e2a69b
mov dword [ebp - 0x6c], edx
jmp 0x51e06b03
cmp dword [ebp - 0x6c], eax
jg 0x51e06b03
mov dword [ebp - 0x6c], eax
jmp 0x51e06b03
mov dword [ebp - 0x70], esi
jmp 0x51e06b03
mov eax, dword [ebp - 0x64]
sub eax, dword [ebp - 0x6c]
push 0xf00021
push eax
mov eax, dword [ebp - 0x68]
sub eax, dword [ebp - 0x70]
push eax
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
push ebx
call fcn.51e186d8
add esp, 0x18
xor esi, esi
jmp 0x51e1314c
mov eax, 0xff
cmp edi, eax
jge 0x51e2a6e8
mov eax, edi
push eax
lea eax, [ebp - 0x60]
push eax
push 0x880003
call fcn.51e5b2d0
pop ecx
push eax
call fcn.51e5b744
add esp, 0xc
lea eax, [ebp - 0x60]
jmp 0x51e13171
mov eax, dword [0x51e8c348]
mov ecx, dword [eax + 0xc]
mov dword [0x51eb3d58], ecx
xor ecx, ecx
mov cl, byte [eax + 0x151]
push ecx
xor ecx, ecx
mov cl, byte [eax + 0x13c]
push ecx
mov cl, byte [eax + 0x138]
movzx eax, byte [eax + 0x135]
neg cl
push 0x51eb3d58
sbb ecx, ecx
and ecx, 0x80
or ecx, eax
push ecx
push dword [ebp - 0x78]
lea eax, [ebp - 0x70]
push 0
push edi
push dword [ebp - 0x78]
or esi, 4
push eax
push esi
push dword [ebp - 0x6c]
push dword [ebp - 0x74]
push ebx
push ebx
call fcn.51e58c03
add esp, 0x38
jmp 0x51e131ed
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
cmp ax, 0x411
je 0x51e13222
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
cmp ax, 0x404
je 0x51e13222
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
cmp ax, 0x412
je 0x51e13222
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
cmp ax, 0x804
je 0x51e13222
jmp 0x51e131ba
push esi
push dword [ebp - 0x74]
push dword [ebp - 0x7c]
jmp 0x51e131e6
mov eax, dword [eax + 0x74]
test eax, eax
je 0x51e131ba
push dword [ebp + 0x1bc]
lea ecx, [ebp - 0x70]
push dword [ebp + 0x1b8]
or esi, 4
push dword [ebp + 0x1b4]
push dword [ebp + 0x1b0]
push 0
push edi
push dword [ebp - 0x78]
push ecx
push esi
push dword [ebp - 0x7c]
push dword [ebp - 0x74]
push ebx
call eax
jmp 0x51e131ed