Function at 0x51e16249
Capabilities:
Identify system language via api

Disassembly:
mov eax, dword [ebp - 8]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x2c], eax
jmp 0x51e16688
cmp si, 0x20
je 0x51e13364
cmp si, 0x2d
je 0x51e13364
cmp si, 0xa
je 0x51e285e6
cmp si, 0xd
je 0x51e285e6
jmp 0x51e16674
mov dword [ebp - 0xc], 1
jmp 0x51e165be
push ebp
mov ebp, esp
sub esp, 0x2c
mov ecx, dword [0x51e8b69c]
xor eax, eax
cmp dword [ebp + 0x10], 0x13
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
sete al
test ecx, ecx
push esi
push edi
mov dword [ebp - 0x18], eax
je 0x51e28480
xor eax, eax
cmp dword [ecx + 0x53a8], 0x411
sete al
test eax, eax
mov edi, 0x804
mov esi, 0x404
jne 0x51e28497
test ecx, ecx
je 0x51e284c4
xor eax, eax
cmp dword [ecx + 0x53a8], esi
sete al
test eax, eax
jne 0x51e284da
test ecx, ecx
je 0x51e28507
xor eax, eax
cmp dword [ecx + 0x53a8], edi
sete al
test eax, eax
jne 0x51e2851d
test ecx, ecx
je 0x51e2854a
xor eax, eax
cmp dword [ecx + 0x53a8], 0x412
sete al
test eax, eax
jne 0x51e2855b
and dword [ebp + 0x10], 0xffffffef
mov eax, dword [ebp + 0x20]
push 0
pop esi
mov dword [eax], esi
jne 0x51e16587
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.51e0af33
pop ecx
pop ecx
pop edi
pop esi
pop ebx
leave
ret
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
push 1
push dword [ebp + 0x18]
mov dword [ebp - 0x1c], eax
push dword [ebp + 0x1c]
mov dword [ebp - 0x14], esi
mov dword [ebp - 0xc], esi
call fcn.51e161a9
mov eax, dword [ebp + 8]
add esp, 0xc
mov dword [ebp - 0x20], esi
mov dword [ebp - 4], esi
jmp 0x51e165fb
and dword [ebp - 0xc], 0
cmp dword [ebp - 0x18], 0
jne 0x51e2869e
xor edi, edi
cmp dword [ebp - 4], edi
je 0x51e1a1c1
cmp dword [ebp - 0x24], 0
jne 0x51e286ce
mov eax, dword [ebp + 0x18]
mov esi, dword [eax + 0x2c]
push dword [ebp - 0x28]
mov ecx, esi
call fcn.51e1a1d0
sub eax, dword [esi + 8]
mov esi, dword [ebp - 8]
add dword [ebp - 4], eax
mov ecx, dword [ebp - 0x1c]
cmp dword [ebp - 4], ecx
jg 0x51e286e5
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp + 0xc]
mov dword [ebp - 8], eax
jae 0x51e166c8
mov eax, dword [ebp - 8]
xor esi, esi
mov si, word [eax]
lea ecx, [eax + 2]
mov eax, dword [0x51e8b69c]
test eax, eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x28], esi
je 0x51e28588
cmp dword [eax + 0x53bc], 0
jne 0x51e285be
test byte [eax + 0x53b6], 0x3c
jne 0x51e285be
xor edi, edi
mov eax, dword [0x51e8b69c]
test eax, eax
mov dword [ebp - 0x24], edi
je 0x51e285ad
xor ecx, ecx
cmp dword [eax + 0x53a8], 0x411
sete cl
mov eax, ecx
test eax, eax
jne 0x51e285d1
cmp si, 0x2d
jbe 0x51e1333f
cmp dword [ebp - 0x18], 0
jne 0x51e28630
cmp dword [ebp - 0xc], 0
jne 0x51e1332e
test edi, edi
jne 0x51e28692
mov eax, dword [ebp + 0xc]
cmp dword [ebp - 0x10], eax
jae 0x51e165b0
mov eax, dword [0x51e8b69c]
test eax, eax
je 0x51e28660
cmp dword [eax + 0x53bc], 0
jne 0x51e28684
test byte [eax + 0x53b6], 0x3c
jne 0x51e28684
jmp 0x51e165b0
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp + 0x20]
mov dword [ecx], eax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
mov eax, dword [ebp - 8]
jmp 0x51e16307
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 4]
inc edi
mov dword [ebp - 4], eax
jmp 0x51e165c9
call ebx
mov ecx, dword [0x51e8b69c]
sub ax, 0x411
neg ax
sbb eax, eax
inc eax
jmp 0x51e16281
mov dword [0x51eb74f4], 0x51e8ca1c
mov dword [0x51eb74f0], 0x51e8c978
mov dword [0x51eb74ec], 0x14
mov dword [0x51eb74e8], 0x51
jmp 0x51e162e8
call ebx
mov ecx, dword [0x51e8b69c]
sub ax, si
neg ax
sbb eax, eax
inc eax
jmp 0x51e162a6
mov dword [0x51eb74f4], 0x51e8c940
mov dword [0x51eb74f0], 0x51e8c8c8
mov dword [0x51eb74ec], 0x1a
mov dword [0x51eb74e8], 0x3b
jmp 0x51e162e8
call ebx
mov ecx, dword [0x51e8b69c]
sub ax, di
neg ax
sbb eax, eax
inc eax
jmp 0x51e162c1
mov dword [0x51eb74f4], 0x51e8c890
mov dword [0x51eb74f0], 0x51e8c838
mov dword [0x51eb74ec], 0x1a
mov dword [0x51eb74e8], 0x2c
jmp 0x51e162e8
call ebx
sub ax, 0x412
neg ax
sbb eax, eax
inc eax
jmp 0x51e162e0
mov dword [0x51eb74f4], 0x51e8c808
mov dword [0x51eb74f0], 0x51e8c7c0
mov dword [0x51eb74ec], 0x15
mov dword [0x51eb74e8], 0x24
jmp 0x51e162e8
call ebx
cmp ax, 0x411
je 0x51e285be
call ebx
cmp ax, 0x404
je 0x51e285be
call ebx
cmp ax, 0x412
je 0x51e285be
call ebx
cmp ax, 0x804
je 0x51e285be
jmp 0x51e1663f
call ebx
sub ax, 0x411
neg ax
sbb eax, eax
inc eax
jmp 0x51e16662
cmp si, 0xff
jbe 0x51e1663f
xor edi, edi
inc edi
jmp 0x51e16641
push dword [ebp - 8]
call fcn.51e50fad
shr eax, 4
and eax, 1
or edi, eax
jmp 0x51e1666a
cmp si, 0xd
mov ecx, dword [ebp - 8]
jne 0x51e2860a
mov eax, dword [ebp + 0xc]
add eax, 0xfffffffe
cmp ecx, eax
jae 0x51e286f0
mov eax, dword [ebp - 0x10]
cmp word [eax], 0xa
jne 0x51e16674
cmp si, 0xa
jne 0x51e286f0
cmp ecx, dword [ebp + 8]
jbe 0x51e286f0
mov eax, dword [ebp - 0x10]
cmp word [eax - 4], 0xd
je 0x51e286f0
jmp 0x51e16674
cmp dword [ebp - 0xc], 0
je 0x51e16688
push dword [0x51eb74e8]
push dword [0x51eb74f0]
push esi
call fcn.51e50bc2
add esp, 0xc
test eax, eax
je 0x51e1667e
and dword [ebp - 0xc], 0
jmp 0x51e1667e
call ebx
cmp ax, 0x411
je 0x51e28684
call ebx
cmp ax, 0x404
je 0x51e28684
call ebx
cmp ax, 0x412
je 0x51e28684
call ebx
cmp ax, 0x804
jne 0x51e165b0
mov eax, dword [ebp - 0x10]
cmp word [eax], 0xff
jbe 0x51e165b0
mov dword [ebp - 0xc], 1
jmp 0x51e165b4
cmp dword [ebp - 0xc], 0
je 0x51e165be
push dword [0x51eb74ec]
push dword [0x51eb74f4]
push esi
call fcn.51e50bc2
add esp, 0xc
test eax, eax
je 0x51e165be
and dword [ebp - 0xc], 0
jmp 0x51e165be
push dword [ebp + 0x18]
mov esi, dword [ebp - 8]
push dword [ebp + 0x1c]
push esi
call fcn.51e50af7
add esp, 0xc
jmp 0x51e165e9
cmp dword [ebp + 0x10], 1
jne 0x51e28721
jmp 0x51e165f8
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 4], eax
jle 0x51e28702
test eax, eax
jne 0x51e2870e
cmp dword [ebp + 0x10], 7
je 0x51e28718
push ecx
call fcn.51e64c25
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp + 0x10], 7
jne 0x51e166c8
and dword [ebp - 0x14], 0
jmp 0x51e166c8
test ecx, ecx
jne 0x51e28736
cmp dword [ebp + 0x10], 3
jne 0x51e28736
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], eax
jmp 0x51e166c8
sub dword [ebp - 4], eax
test edi, edi
je 0x51e28746
mov edx, dword [ebp + 0x18]
mov edx, dword [edx + 4]
sub dword [ebp - 4], edx
cmp dword [ebp + 0x10], 3
jne 0x51e287de
mov edi, dword [ebp - 0x20]
test edi, edi
jne 0x51e2876a
cmp esi, dword [ebp + 8]
jne 0x51e287cd
push esi
call fcn.51e64c25
add esp, 4
mov dword [ebp - 8], eax
jmp 0x51e287cd
mov eax, dword [0x51e8b69c]
test eax, eax
jne 0x51e28795
call ebx
cmp ax, 0x411
je 0x51e287a7
call ebx
cmp ax, 0x404
je 0x51e287a7
call ebx
cmp ax, 0x412
je 0x51e287a7
call ebx
cmp ax, 0x804
jne 0x51e287bd
jmp 0x51e287a7
cmp dword [eax + 0x53bc], 0
jne 0x51e287a7
test byte [eax + 0x53b6], 0x3c
je 0x51e287bd
mov ax, word [esi]
cmp ax, 0x20
je 0x51e287b6
cmp ax, 0x2d
jne 0x51e287bd
cmp word [edi], 0xff
ja 0x51e287cd
mov eax, dword [ebp - 0x2c]
sub esi, edi
sar esi, 1
mov dword [ebp - 0x14], esi
mov dword [ebp - 8], edi
mov dword [ebp - 4], eax
xor eax, eax
cmp dword [ebp - 0x24], eax
setne al
inc eax
add dword [ebp - 0x14], eax
jmp 0x51e166c8
sub ecx, dword [ebp - 4]
push eax
push ecx
push 0x64
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [ebp - 0x14], eax
jmp 0x51e166c8