Function at 0x51e644ed
Capabilities:
Identify system language via api

Disassembly:
push ebp
lea ebp, [esp - 0x1ec]
sub esp, 0x26c
mov eax, dword [0x51e8c240]
or dword [ebp - 0x64], 0xffffffff
push ebx
mov ebx, dword [ebp + 0x1fc]
push esi
mov esi, dword [ebp + 0x1f4]
test esi, esi
mov dword [ebp + 0x1e8], eax
mov dword [ebp - 0x70], ebx
je 0x51e64550
push 1
push esi
call fcn.51e03933
push eax
push esi
call fcn.51e63cc6
add esp, 0xc
test eax, eax
je 0x51e64557
push ebx
push dword [ebp + 0x1f8]
push 0x880003
call fcn.51e5b2d0
pop ecx
push eax
call fcn.51e5b744
add esp, 0xc
mov eax, ebx
jmp 0x51e649e7
push edi
mov edi, dword [ebp + 0x204]
test edi, edi
je 0x51e64569
push 8
pop ecx
xor eax, eax
rep stosd dword es:[edi], eax
cmp dword [ebp + 0x208], 0
jne 0x51e6457f
push esi
call fcn.51e63c3c
pop ecx
mov dword [ebp + 0x208], eax
test byte [ebp + 0x20c], 2
je 0x51e64706
push 0x8b
lea eax, [ebp + 0x1b0]
push eax
push dword [ebp + 0x1f4]
call fcn.51e03933
push eax
push dword [ebp + 0x1f4]
call fcn.51e62ef5
lea eax, [ebp + 0x1b0]
push eax
xor edi, edi
or esi, 0xffffffff
call fcn.51e62f81
add esp, 0x14
test eax, eax
je 0x51e64706
cmp esi, 0xffffffff
je 0x51e645ea
cmp byte [ebp + 0x1e0], 0
jbe 0x51e645e7
cmp byte [ebp + 0x1e0], 3
ja 0x51e645e7
inc dword [ebp - 0x58]
jmp 0x51e645ea
inc dword [ebp - 0x54]
cmp byte [ebp + 0x1e0], 0xc
jne 0x51e645fd
and dword [ebp - 0x54], 0
and dword [ebp - 0x58], 0
mov esi, edi
add edi, dword [ebp + 0x1b8]
lea eax, [ebp + 0x1b0]
push eax
call fcn.51e62f81
test eax, eax
pop ecx
jne 0x51e645cb
cmp esi, 0xffffffff
je 0x51e64706
xor esi, esi
cmp dword [ebp - 0x54], esi
jne 0x51e64706
cmp ebx, esi
jle 0x51e64644
mov ecx, dword [ebp + 0x1f8]
mov cx, word [ecx + eax*2]
cmp cx, word [0x51e8526c]
je 0x51e64644
inc eax
cmp eax, ebx
jl 0x51e6462c
inc eax
xor edi, edi
cmp eax, ebx
mov dword [ebp - 0x54], esi
jge 0x51e646c4
mov ecx, dword [ebp + 0x1f8]
lea edx, [ecx + eax*2 + 2]
movzx ecx, word [edx - 2]
cmp ecx, 0x30
je 0x51e646aa
jle 0x51e64690
cmp ecx, 0x39
jle 0x51e64699
cmp ecx, 0x45
je 0x51e64672
cmp ecx, 0x65
jne 0x51e64690
lea ecx, [ebx - 1]
cmp eax, ecx
jge 0x51e64690
mov cx, word [edx]
cmp cx, 0x2b
je 0x51e649e3
cmp cx, 0x2d
je 0x51e649e3
mov dword [ebp - 0x54], 1
jmp 0x51e646b1
cmp dword [ebp - 0x54], 0
jne 0x51e646b8
inc edi
test esi, esi
jle 0x51e646b1
add edi, esi
xor esi, esi
jmp 0x51e646b1
cmp dword [ebp - 0x54], 0
jne 0x51e646b8
inc esi
inc eax
inc edx
inc edx
cmp eax, ebx
jl 0x51e64658
cmp eax, ebx
jge 0x51e646c0
xor edi, edi
xor esi, esi
test esi, esi
jl 0x51e64706
mov eax, dword [ebp - 0x58]
cmp eax, edi
jl 0x51e649e3
sub eax, edi
sub eax, esi
lea esi, [eax + ebx]
cmp esi, dword [ebp + 0x200]
jg 0x51e649e3
test eax, eax
jle 0x51e646fb
push eax
mov eax, dword [ebp + 0x1f8]
lea eax, [eax + ebx*2]
push eax
push 0x30
call fcn.51e5b744
add esp, 0xc
mov ebx, esi
mov dword [ebp + 0x1fc], ebx
mov dword [ebp - 0x70], ebx
mov eax, dword [ebp + 0x20c]
and eax, 1
mov dword [ebp - 0x80], eax
je 0x51e64730
push dword [ebp + 0x1f4]
call fcn.51e64455
push 0
push ebx
push dword [ebp + 0x1f8]
call fcn.51e63e18
add esp, 0x10
mov esi, dword [ebp + 0x1f8]
xor eax, eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x6c], eax
push 0x8b
lea eax, [ebp + 0x1b0]
push eax
push dword [ebp + 0x1f4]
mov dword [ebp - 0x68], esi
lea ebx, [ebp - 0x50]
mov dword [ebp - 0x78], 1
call fcn.51e03933
push eax
push dword [ebp + 0x1f4]
call fcn.51e62ef5
lea eax, [ebp + 0x1b0]
push eax
call fcn.51e62f81
add esp, 0x14
jmp 0x51e64971
mov eax, dword [ebp + 0x1b8]
mov ecx, dword [ebp - 0x58]
add ecx, eax
cmp ecx, dword [ebp + 0x200]
ja 0x51e64979
mov ecx, dword [ebp + 0x1c0]
lea edi, [ecx + ecx]
sar edi, 1
cmp dword [ebp - 0x78], 0
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x7c], eax
je 0x51e647e4
cmp dword [ebp + 0x1fc], 0
jbe 0x51e647e0
push edi
push eax
push esi
push dword [ebp + 0x1b0]
push dword [ebp + 0x1e0]
call fcn.51e6373f
add esp, 0x14
test eax, eax
je 0x51e647e0
mov dword [ebp - 0x5c], 1
jmp 0x51e647e4
and dword [ebp - 0x5c], 0
mov al, byte [ebp + 0x1e0]
mov byte [ebp - 0x60], al
mov eax, dword [0x51e8b69c]
test eax, eax
jne 0x51e64828
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
cmp ax, 0x411
je 0x51e64831
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
cmp ax, 0x404
je 0x51e64831
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
cmp ax, 0x412
je 0x51e64831
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
cmp ax, 0x804
jne 0x51e6485b
jmp 0x51e64831
cmp dword [eax + 0x53b8], 0
je 0x51e6485b
cmp byte [ebp - 0x60], 0x21
jb 0x51e6485b
movzx eax, byte [ebp - 0x60]
cmp eax, dword [0x51eb74e4]
jge 0x51e6485b
mov eax, dword [0x51e8a120]
test eax, eax
je 0x51e6485b
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x51e6485b
push dword [ebp - 0x60]
call eax
mov byte [ebp - 0x60], al
movzx eax, byte [ebp - 0x60]
cmp eax, 0x70
jg 0x51e6487a
je case.0x51e64873.1
dec eax
cmp eax, 8
ja case.default.0x51e64873
movzx eax, byte [eax + 0x51e64a04]
jmp dword [eax*4 + 0x51e649fc]
cmp eax, 0x71
je case.0x51e64873.2
mov ecx, dword [ebp + 0x1b8]
mov esi, dword [ebp + 0x1b0]
mov edi, ebx
rep movsw word es:[edi], word [esi]
mov esi, dword [ebp - 0x68]
mov edi, dword [ebp - 0x74]
mov dword [ebp - 0x6c], 1
jmp 0x51e648f7
cmp dword [ebp + 0x1fc], 0
jbe 0x51e648b2
cmp dword [ebp - 0x5c], 0
je 0x51e64996
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x5c], 0
je 0x51e648ed
test byte [ebp + 0x1d4], 0x10
je 0x51e648d3
movzx eax, word [esi]
push eax
call dword [0x51e85034]
jmp 0x51e648f4
test byte [ebp + 0x1d4], 0x20
je 0x51e648e8
movzx eax, word [esi]
push eax
call dword [0x51e85024]
jmp 0x51e648f4
mov ax, word [esi]
jmp 0x51e648f4
mov ax, word [ebp + 0x208]
mov word [ebx], ax
xor eax, eax
cmp dword [ebp - 0x5c], eax
jne 0x51e64903
cmp dword [ebp - 0x6c], eax
je 0x51e64952
cmp dword [ebp + 0x204], eax
je 0x51e64940
mov esi, dword [ebp - 0x54]
mov eax, dword [ebp + 0x1c0]
lea edi, [eax + esi]
jmp 0x51e64932
mov ecx, dword [ebp + 0x204]
mov eax, esi
shr eax, 3
add eax, ecx
mov ecx, esi
and ecx, 7
mov dl, 1
shl dl, cl
or byte [eax], dl
inc esi
cmp esi, edi
jb 0x51e64919
and dword [ebp - 0x6c], 0
mov esi, dword [ebp - 0x68]
mov edi, dword [ebp - 0x74]
cmp dword [ebp - 0x5c], 0
je 0x51e64952
sub dword [ebp + 0x1fc], edi
lea esi, [esi + edi*2]
mov dword [ebp - 0x68], esi
mov eax, dword [ebp - 0x7c]
add dword [ebp - 0x58], eax
lea ebx, [ebx + eax*2]
mov eax, dword [ebp + 0x1c0]
add dword [ebp - 0x54], eax
lea eax, [ebp + 0x1b0]
push eax
call fcn.51e62f81
pop ecx
test eax, eax
jne 0x51e64785
cmp dword [ebp + 0x1fc], 0
ja 0x51e64996
mov eax, dword [ebp - 0x58]
mov edi, dword [ebp + 0x1f8]
mov ecx, eax
lea esi, [ebp - 0x50]
rep movsw word es:[edi], word [esi]
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x80], 0
je 0x51e649e3
push dword [ebp + 0x1f4]
call fcn.51e64455
mov eax, dword [ebp - 0x64]
cmp eax, 0xffffffff
pop ecx
jne 0x51e649b3
mov eax, dword [ebp - 0x70]
push 0
push eax
push dword [ebp + 0x1f8]
call fcn.51e63e18
add esp, 0xc
cmp dword [ebp + 0x204], 0
je 0x51e649e3
cmp dword [ebp - 0x64], 0xffffffff
je 0x51e649e3
push dword [ebp - 0x54]
push dword [ebp + 0x204]
call fcn.51e63ed1
pop ecx
pop ecx
mov eax, dword [ebp - 0x64]
pop edi
mov ecx, dword [ebp + 0x1e8]
pop esi
pop ebx
call fcn.51e03d50
add ebp, 0x1ec
leave
ret