Function at 0x51e63394
Capabilities:
Identify system language via api

Disassembly:
push ebp
lea ebp, [esp - 0x1e0]
sub esp, 0x260
mov eax, dword [0x51e8c240]
or dword [ebp - 0x74], 0xffffffff
or dword [ebp - 0x68], 0xffffffff
push esi
xor esi, esi
cmp dword [ebp + 0x1e8], esi
mov dword [ebp + 0x1dc], eax
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x60], esi
jne 0x51e633d7
mov eax, dword [ebp + 0x1f0]
jmp 0x51e63694
mov eax, dword [ebp + 0x1ec]
push edi
mov dword [ebp - 0x7c], eax
push 0x8b
lea eax, [ebp + 0x1a4]
push eax
push dword [ebp + 0x1e8]
lea edi, [ebp - 0x5c]
mov dword [ebp - 0x64], edi
call fcn.51e03933
push eax
push dword [ebp + 0x1e8]
call fcn.51e62ef5
lea eax, [ebp + 0x1a4]
push eax
call fcn.51e62f81
add esp, 0x14
test eax, eax
je 0x51e635f5
push ebx
jmp 0x51e63427
mov edi, dword [ebp - 0x64]
cmp dword [ebp + 0x1f0], esi
jbe 0x51e635ef
mov eax, dword [ebp + 0x1b4]
lea ebx, [eax + eax]
mov eax, dword [ebp - 0x60]
sar ebx, 1
add eax, ebx
cmp eax, dword [ebp + 0x1f4]
mov dword [ebp - 0x80], eax
ja 0x51e635ef
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp + 0x1f8]
shr eax, 3
mov al, byte [eax + edx]
and ecx, 7
test byte [ecx + 0x51e3545c], al
je 0x51e6358c
mov al, byte [ebp + 0x1d4]
mov byte [ebp + 0x1e8], al
mov eax, dword [0x51e8b69c]
cmp eax, esi
jne 0x51e634b0
mov esi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
call esi
cmp ax, 0x411
je 0x51e634b8
call esi
cmp ax, 0x404
je 0x51e634b8
call esi
cmp ax, 0x412
je 0x51e634b8
call esi
cmp ax, 0x804
jne 0x51e634ee
jmp 0x51e634b8
cmp dword [eax + 0x53b8], esi
je 0x51e634ee
cmp byte [ebp + 0x1e8], 0x21
jb 0x51e634ee
movzx eax, byte [ebp + 0x1e8]
cmp eax, dword [0x51eb74e4]
jge 0x51e634ee
mov eax, dword [0x51e8a120]
test eax, eax
je 0x51e634ee
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x51e634ee
push dword [ebp + 0x1e8]
call eax
mov byte [ebp + 0x1e8], al
movzx eax, byte [ebp + 0x1e8]
cmp eax, 0xf
jg 0x51e6351b
cmp eax, 0xe
jge 0x51e6352a
test eax, eax
jle 0x51e63563
cmp eax, 9
jle 0x51e63533
cmp eax, 0xc
jne 0x51e63563
test byte [ebp + 0x1fc], 2
jne 0x51e6356c
jmp 0x51e635c0
cmp eax, 0x70
jl 0x51e63563
cmp eax, 0x71
jle 0x51e63533
cmp eax, 0x72
jne 0x51e63563
test byte [ebp + 0x1fc], 4
jmp 0x51e63514
mov esi, dword [ebp - 0x7c]
add dword [ebp - 0x70], ebx
lea eax, [ebx + ebx]
add dword [ebp - 0x64], eax
mov ecx, eax
mov eax, dword [ebp - 0x80]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp dword [ebp - 0x74], 0xffffffff
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x68], eax
jne 0x51e635c0
mov dword [ebp - 0x74], eax
jmp 0x51e635c0
test byte [ebp + 0x1fc], 1
je 0x51e635c0
mov ecx, dword [ebp + 0x1ac]
mov esi, dword [ebp + 0x1a4]
rep movsw word es:[edi], word [esi]
mov eax, dword [ebp + 0x1ac]
mov ecx, dword [ebp - 0x64]
add dword [ebp - 0x60], eax
lea ecx, [ecx + eax*2]
jmp 0x51e635bd
test byte [ebp + 0x1c9], 8
je 0x51e635c0
test byte [ebp + 0x1fd], 0x30
je 0x51e635c0
push dword [ebp + 0x1ac]
push edi
push esi
call fcn.51e5b744
mov eax, dword [ebp + 0x1ac]
add dword [ebp - 0x60], eax
add esp, 0xc
add dword [ebp - 0x78], eax
lea ecx, [edi + eax*2]
mov dword [ebp - 0x64], ecx
mov eax, dword [ebp - 0x7c]
sub dword [ebp + 0x1f0], ebx
lea eax, [eax + ebx*2]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp + 0x1b4]
add dword [ebp - 0x6c], eax
lea eax, [ebp + 0x1a4]
push eax
call fcn.51e62f81
xor esi, esi
test eax, eax
pop ecx
jne 0x51e63424
cmp dword [ebp - 0x70], esi
pop ebx
jne 0x51e635fd
mov dword [ebp - 0x60], esi
jmp 0x51e63690
cmp dword [ebp - 0x78], esi
je 0x51e63681
test byte [ebp + 0x1fd], 0x30
je 0x51e63681
test byte [ebp + 0x1fd], 0x10
je 0x51e63633
cmp dword [ebp - 0x68], 0xffffffff
je 0x51e63633
mov ecx, dword [ebp - 0x74]
jmp 0x51e6362e
lea eax, [ebp + ecx*2 - 0x5c]
cmp word [eax], si
jne 0x51e6362d
mov word [eax], 0x30
inc ecx
cmp ecx, dword [ebp - 0x68]
jl 0x51e6361f
test byte [ebp + 0x1fd], 0x20
je 0x51e63657
xor ecx, ecx
cmp dword [ebp - 0x60], esi
jbe 0x51e63657
lea eax, [ebp + ecx*2 - 0x5c]
cmp word [eax], si
jne 0x51e63651
mov word [eax], 0x20
inc ecx
cmp ecx, dword [ebp - 0x60]
jb 0x51e63643
mov edx, dword [ebp - 0x60]
xor ecx, ecx
cmp edx, esi
jbe 0x51e63690
mov esi, dword [ebp + 0x1ec]
mov ax, word [ebp + ecx*2 - 0x5c]
test ax, ax
je 0x51e63677
mov word [esi], ax
inc esi
inc esi
jmp 0x51e6367a
dec dword [ebp - 0x60]
inc ecx
cmp ecx, edx
jb 0x51e63666
jmp 0x51e63690
mov ecx, dword [ebp - 0x60]
mov edi, dword [ebp + 0x1ec]
lea esi, [ebp - 0x5c]
rep movsw word es:[edi], word [esi]
mov eax, dword [ebp - 0x60]
pop edi
mov ecx, dword [ebp + 0x1dc]
pop esi
call fcn.51e03d50
add ebp, 0x1e0
leave
ret