Function at 0x51df657b
Capabilities:
Identify system language via api

Disassembly:
mov eax, 0x1194
call fcn.51e038cf
mov eax, dword [0x51e8c240]
push ebx
push ebp
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov dword [esp + 0x119c], eax
mov eax, dword [0x51e8b69c]
push edi
xor edi, edi
cmp eax, edi
je 0x51e2f0cd
cmp dword [eax + 0x53b8], edi
jne 0x51e2f0f1
push 1
mov ebx, 0xcc
push ebx
push dword [0x51e89c0c]
mov dword [0x51e85304], 0x51e8a230
call fcn.51e02fa0
add esp, 0xc
mov dword [0x51e852c4], eax
xor ebp, ebp
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov ecx, 0x409
cmp eax, ecx
jne 0x51e2f100
mov eax, dword [0x51e8b69c]
cmp dword [eax + 0x51bc], ecx
jne 0x51e2f100
mov eax, dword [0x51e852c4]
lea esi, [eax + edi]
mov eax, dword [0x51e837f4]
mov eax, dword [edi + eax]
mov dword [esi], eax
mov eax, dword [0x51e837f4]
add eax, edi
mov ecx, dword [eax + 8]
mov dword [esi + 8], ecx
mov eax, dword [eax + 4]
add edi, 0xc
inc ebp
cmp edi, ebx
mov dword [esi + 4], eax
jb 0x51df65dd
push 1
push 0x20
push dword [0x51e89c0c]
call fcn.51e02fa0
add esp, 0xc
mov dword [0x51e852c8], eax
xor esi, esi
mov ebx, 0x409
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
cmp eax, ebx
jne 0x51e2f11a
mov eax, dword [0x51e8b69c]
cmp dword [eax + 0x51bc], ebx
jne 0x51e2f11a
mov eax, dword [0x51e837f8]
mov eax, dword [eax + esi*4]
mov ecx, dword [0x51e852c8]
mov dword [ecx + esi*4], eax
inc esi
cmp esi, 8
jb 0x51df664c
push 3
mov edi, 0x440022
xor esi, esi
pop ebp
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
cmp eax, ebx
jne 0x51df6ade
mov eax, dword [0x51e8b69c]
cmp dword [eax + 0x51bc], ebx
jne 0x51df6ade
lea eax, [esi + 0x51e83808]
mov ecx, dword [eax - 0xc]
mov eax, dword [eax]
mov dword [esi + 0x51e852cc], ecx
mov dword [esi + 0x51e852d8], eax
inc edi
add esi, 4
dec ebp
jne 0x51df668c
mov esi, 0x51e85280
push esi
push 0x1000e
call fcn.51df6b40
pop ecx
push eax
call fcn.51e03332
mov ax, word [0x51e8a332]
mov word [0x51e852a4], ax
mov ax, word [0x51e8a244]
mov word [0x51e852aa], ax
mov ax, word [0x51e8a29c]
mov word [0x51e852a2], ax
mov ax, word [0x51e8a264]
cmp ax, word [0x51e8a274]
mov word [0x51e85280], 0x20
je 0x51df6722
mov word [0x51e85280], ax
mov ax, word [0x51e8a254]
mov word [0x51e85282], ax
mov ax, word [0x51e8a32c]
mov word [0x51e852c0], ax
mov eax, dword [0x51e8b69c]
mov eax, dword [eax + 0x51bc]
cmp eax, ebx
jne 0x51df674f
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
push esi
mov dword [0x51e852bc], eax
call fcn.51df70f1
pop ecx
push 0x23
pop ecx
lea eax, [esp + 0x1a0]
push eax
lea edi, [esp + 0x18]
rep movsd dword es:[edi], dword [esi]
push 0x51e8a2ac
mov word [esp + 0x26], 0x64
mov word [esp + 0x28], 0x6d
mov word [esp + 0x2a], 0x79
mov word [esp + 0x52], 0x67
call fcn.51e03332
lea eax, [esp + 0x1a0]
push eax
call fcn.51df7aba
push 0xd
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x1ac]
push eax
lea eax, [esp + 0xb0]
push eax
call fcn.51df7440
mov esi, eax
mov eax, dword [0x51e852ec]
mov edi, 0x51df6b24
add esp, 0x14
cmp eax, edi
je 0x51df67dc
push eax
push dword [0x51e89c0c]
call fcn.51e03b98
pop ecx
pop ecx
cmp esi, 0xffffffff
je 0x51df6aec
push 1
push esi
push dword [0x51e89c0c]
call fcn.51e02fa0
mov ecx, esi
mov edi, eax
mov dword [0x51e852ec], eax
mov eax, ecx
shr ecx, 2
lea esi, [esp + 0xac]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
add esp, 0xc
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x51e8b69c]
test ecx, ecx
je 0x51e2f13f
cmp dword [ecx + 0x53b8], 0
jne 0x51e2f171
mov ebx, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
test ecx, ecx
je 0x51e2f1a3
xor eax, eax
cmp dword [ecx + 0x53a8], 0x804
sete al
test eax, eax
jne 0x51e2f1ba
test ecx, ecx
je 0x51e2f1c4
xor eax, eax
cmp dword [ecx + 0x53a8], 0x411
sete al
test eax, eax
jne 0x51e2f1db
test ecx, ecx
je 0x51e2f1e5
xor eax, eax
cmp dword [ecx + 0x53a8], 0x412
sete al
test eax, eax
jne 0x51e2f1f6
push 0x1000f
call fcn.51df6b40
pop ecx
mov esi, eax
push esi
call fcn.51df7aba
push 5
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0xac]
push esi
push eax
call fcn.51df7440
push dword [0x51e852e8]
mov esi, eax
push dword [0x51e89c0c]
call fcn.51e03b98
push 1
push esi
push dword [0x51e89c0c]
call fcn.51e02fa0
mov ecx, esi
mov edi, eax
mov dword [0x51e852e8], eax
mov eax, ecx
shr ecx, 2
lea esi, [esp + 0xc8]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
add esp, 0x28
lea eax, [esp + 0x1a0]
push eax
and ecx, 3
push 0x51e8a2ec
rep movsb byte es:[edi], byte [esi]
call fcn.51e03332
lea eax, [esp + 0x1a0]
push eax
call fcn.51df7aba
push 0xd
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x1ac]
push eax
lea eax, [esp + 0xb0]
push eax
call fcn.51df7440
mov ebp, eax
mov eax, dword [0x51e852e4]
mov esi, 0x51df6b10
add esp, 0x14
cmp eax, esi
je 0x51df6958
push eax
push dword [0x51e89c0c]
call fcn.51e03b98
pop ecx
pop ecx
cmp ebp, 0xffffffff
je 0x51df6af7
push 1
push ebp
push dword [0x51e89c0c]
call fcn.51e02fa0
mov ecx, ebp
mov edi, eax
mov dword [0x51e852e4], eax
mov eax, ecx
shr ecx, 2
lea esi, [esp + 0xac]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
add esp, 0xc
and ecx, 3
rep movsb byte es:[edi], byte [esi]
movsx eax, word [0x51e8a366]
movsx edi, word [0x51e8a364]
mov dword [esp + 0x10], eax
mov eax, dword [0x51e8b69c]
test eax, eax
je 0x51e2f200
cmp dword [eax + 0x53b8], 0
jne 0x51e2f224
push dword [0x51e852f0]
push dword [0x51e89c0c]
call fcn.51e03b98
push 1
push 0x18
push dword [0x51e89c0c]
call fcn.51e02fa0
add esp, 0x14
mov esi, eax
mov byte [esi], 1
inc esi
mov byte [esi], 0
inc esi
mov byte [esi], 5
inc esi
mov byte [esi], 5
inc esi
mov byte [esi], 5
inc esi
mov dword [0x51e852f0], eax
mov eax, dword [0x51e8b69c]
mov byte [esi], 0
inc esi
test eax, eax
je 0x51e2f32a
cmp dword [eax + 0x53b8], 0
jne 0x51e2f34e
mov byte [esi], 8
inc esi
xor ebp, ebp
cmp edi, ebp
sete al
shl al, 1
cmp dword [esp + 0x10], ebp
setne cl
add al, cl
mov byte [esi], al
inc esi
mov byte [esi], 0xb
mov eax, dword [0x51e8b69c]
inc esi
mov byte [esi], 0x12
inc esi
mov byte [esi], 8
inc esi
mov byte [esi], 5
inc esi
mov byte [esi], 0xb
inc esi
mov byte [esi], 0x12
inc esi
mov byte [esi], 8
inc esi
mov byte [esi], 7
inc esi
cmp eax, ebp
je 0x51e2f3af
cmp dword [eax + 0x53b8], ebp
jne 0x51e2f3d3
mov eax, dword [0x51e8b69c]
test eax, eax
je 0x51e2f419
cmp dword [eax + 0x53b8], 0
jne 0x51df6ac0
push 0x51e8a352
call fcn.51e03933
push 0x51e8a342
mov ebx, eax
call fcn.51e03933
add ebx, eax
je 0x51df6ac0
test edi, edi
jne 0x51e2f444
mov byte [esi], 6
inc esi
mov byte [esi], 1
inc esi
mov byte [esi], 0x20
inc esi
mov byte [esi], 0
inc esi
mov byte [esi], 8
inc esi
test edi, edi
setne al
add al, 0xd
mov byte [esi], al
inc esi
mov ecx, dword [esp + 0x11a0]
pop edi
mov byte [esi], 0
mov byte [esi + 1], 0
pop esi
pop ebp
pop ebx
call fcn.51e03d50
add esp, 0x1194
ret
lea eax, [edi - 3]
push eax
call fcn.51df6b40
jmp 0x51e2f12c
mov dword [0x51e852ec], edi
jmp 0x51df6814
mov dword [0x51e852e4], esi
jmp 0x51df6990
cmp ax, 0x804
jne 0x51df6a80
jmp 0x51df6ac0
call esi
cmp ax, 0x411
je 0x51e2f0f1
call esi
cmp ax, 0x404
je 0x51e2f0f1
call esi
cmp ax, 0x412
je 0x51e2f0f1
call esi
cmp ax, 0x804
jne 0x51df65b6
mov dword [0x51e837f4], 0x51e2f458
jmp 0x51df65b6
mov eax, dword [0x51e852c4]
lea esi, [eax + edi]
lea eax, [ebp + 0x440000]
push eax
call fcn.51df6b40
pop ecx
jmp 0x51df6611
lea eax, [esi + 0x440032]
push eax
call fcn.51df6b40
pop ecx
jmp 0x51df6673
push edi
mov dword [esi + 0x51e852cc], eax
call fcn.51df6b40
pop ecx
pop ecx
jmp 0x51df66bc
mov ebx, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
call ebx
cmp ax, 0x411
je 0x51e2f19b
call ebx
cmp ax, 0x404
je 0x51e2f19b
call ebx
cmp ax, 0x412
je 0x51e2f19b
call ebx
cmp ax, 0x804
mov ecx, dword [0x51e8b69c]
jne 0x51df6835
jmp 0x51e2f177
mov ebx, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov ax, word [0x51e8b552]
cmp ax, 1
je 0x51df6835
cmp ax, 2
je 0x51df6835
push 0x10013
jmp 0x51df6897
mov ecx, dword [0x51e8b69c]
jmp 0x51e2f177
call ebx
mov ecx, dword [0x51e8b69c]
sub ax, 0x804
neg ax
sbb eax, eax
inc eax
jmp 0x51df684c
push 0x10011
jmp 0x51df6897
call ebx
mov ecx, dword [0x51e8b69c]
sub ax, 0x411
neg ax
sbb eax, eax
inc eax
jmp 0x51df686b
push 0x10010
jmp 0x51df6897
call ebx
sub ax, 0x412
neg ax
sbb eax, eax
inc eax
jmp 0x51df688a
push 0x10012
jmp 0x51df6897
call ebx
cmp ax, 0x411
je 0x51e2f224
call ebx
cmp ax, 0x404
je 0x51e2f224
call ebx
cmp ax, 0x412
je 0x51e2f224
call ebx
cmp ax, 0x804
jne 0x51df69bc
push dword [0x51e85308]
push dword [0x51e89c0c]
call fcn.51e03b98
push 1
push 0x17
push dword [0x51e89c0c]
call fcn.51e02fa0
add esp, 0x14
mov esi, eax
mov byte [esi], 1
inc esi
mov byte [esi], 0
inc esi
mov byte [esi], 5
inc esi
mov byte [esi], 5
inc esi
mov byte [esi], 5
inc esi
mov byte [esi], 0
inc esi
cmp word [0x51e8a368], 1
mov dword [0x51e85308], eax
jne 0x51e2f2b6
push 0x51e8a352
call fcn.51e03933
push 0x51e8a342
mov ebp, eax
call fcn.51e03933
add ebp, eax
je 0x51e2f2b6
test edi, edi
je 0x51e2f298
cmp word [0x51e8a362], 0
je 0x51e2f2b6
mov byte [esi], 8
inc esi
test edi, edi
setne al
add al, 0xd
mov byte [esi], al
inc esi
mov byte [esi], 6
inc esi
mov byte [esi], 1
inc esi
mov byte [esi], 0x20
inc esi
mov byte [esi], 0
inc esi
mov byte [esi], 8
inc esi
mov byte [esi], 3
inc esi
mov byte [esi], 0xb
inc esi
mov byte [esi], 0x12
inc esi
mov byte [esi], 8
inc esi
mov byte [esi], 5
inc esi
cmp word [0x51e8a368], 0
jne 0x51e2f31e
push 0x51e8a352
call fcn.51e03933
push 0x51e8a342
mov ebp, eax
call fcn.51e03933
add ebp, eax
je 0x51e2f31e
test edi, edi
je 0x51e2f300
cmp word [0x51e8a362], 0
je 0x51e2f31e
mov byte [esi], 6
inc esi
mov byte [esi], 1
inc esi
mov byte [esi], 0x20
inc esi
mov byte [esi], 0
inc esi
mov byte [esi], 8
inc esi
test edi, edi
setne al
add al, 0xd
mov byte [esi], al
inc esi
mov byte [esi], 0
mov byte [esi + 1], 0
jmp 0x51df69bc
call ebx
cmp ax, 0x411
je 0x51e2f34e
call ebx
cmp ax, 0x404
je 0x51e2f34e
call ebx
cmp ax, 0x412
je 0x51e2f34e
call ebx
cmp ax, 0x804
jne 0x51df6a18
cmp word [0x51e8a368], 1
jne 0x51df6a18
push 0x51e8a352
call fcn.51e03933
push 0x51e8a342
mov ebp, eax
call fcn.51e03933
add ebp, eax
je 0x51df6a18
test edi, edi
je 0x51e2f38c
cmp word [0x51e8a362], 0
je 0x51df6a18
mov byte [esi], 8
inc esi
test edi, edi
setne al
add al, 0xd
mov byte [esi], al
inc esi
mov byte [esi], 6
inc esi
mov byte [esi], 1
inc esi
mov byte [esi], 0x20
inc esi
mov byte [esi], 0
inc esi
jmp 0x51df6a18
call ebx
cmp ax, 0x411
je 0x51e2f3d3
call ebx
cmp ax, 0x404
je 0x51e2f3d3
call ebx
cmp ax, 0x412
je 0x51e2f3d3
call ebx
cmp ax, 0x804
jne 0x51df6a6a
cmp word [0x51e8a368], bp
jne 0x51df6a6a
push 0x51e8a352
call fcn.51e03933
push 0x51e8a342
mov ebp, eax
call fcn.51e03933
add ebp, eax
je 0x51df6a6a
test edi, edi
je 0x51df6aa2
cmp word [0x51e8a362], 0
jne 0x51df6aa2
jmp 0x51df6a6a
call ebx
cmp ax, 0x411
je 0x51df6ac0
call ebx
cmp ax, 0x404
je 0x51df6ac0
call ebx
cmp ax, 0x412
je 0x51df6ac0
call ebx
jmp 0x51df6b02
cmp word [0x51e8a362], 0
je 0x51df6ac0
jmp 0x51df6aa2