Function at 0x42d9c0
Capabilities:
Get geographical location
Identify system language via api

Disassembly:
sub esp, 0x428
mov eax, dword [0x4663e0]
xor eax, esp
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x42c]
test eax, eax
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x1c], 0
mov byte [esp + 0x16], 0
mov byte [esp + 0x17], 0
jne 0x42da52
mov esi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
call esi
movzx eax, ax
push eax
push str.User_default_LangID:_0x_X
push 0x4676a0
xor eax, eax
call fcn.0042cad0
mov edi, dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
add esp, 0xc
call edi
movzx ecx, ax
push ecx
push str.User_default_UI_language:_0x_X
push 0x4676a0
xor eax, eax
call fcn.0042cad0
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetVersion]
movzx eax, ax
cmp ax, 0x105
je 0x42da4e
cmp ax, 0x205
je 0x42da4e
call edi
jmp 0x42da62
call esi
jmp 0x42da62
push 0x10
lea edx, [esp + 0x20]
push edx
push eax
call fcn.00439b28
add esp, 0xc
mov esi, dword [0x468c6c]
cmp esi, dword [0x468c70]
movzx ebx, ax
mov dword [esp + 0x18], ebx
jbe 0x42da7c
call fcn.00439049
mov eax, 0x468c68
mov ebp, eax
jmp 0x42da90
mov edi, dword [0x468c70]
cmp dword [0x468c6c], edi
jbe 0x42daa3
call fcn.00439049
test ebp, ebp
je 0x42daaf
cmp ebp, 0x468c68
je 0x42dab4
call fcn.00439049
cmp esi, edi
je 0x42db21
cmp byte [esp + 0x16], 0
jne 0x42de61
test ebp, ebp
jne 0x42dacc
call fcn.00439049
cmp esi, dword [ebp + 8]
jb 0x42dad6
call fcn.00439049
cmp word [esi + 0x1c], bx
jne 0x42db0f
cmp esi, dword [ebp + 8]
jb 0x42dae6
call fcn.00439049
mov ax, word [esi + 0x1c]
mov word [0x468c78], ax
cmp esi, dword [ebp + 8]
jb 0x42dafa
call fcn.00439049
push 0xffffffffffffffff
push 0
mov eax, esi
mov ecx, 0x468c84
call fcn.004040b0
mov byte [esp + 0x16], 1
cmp esi, dword [ebp + 8]
jb 0x42db19
call fcn.00439049
add esi, 0x20
jmp 0x42da90
cmp byte [esp + 0x16], 0
jne 0x42de61
cmp bx, 0x403
je 0x42db45
cmp bx, 0x42d
je 0x42db45
cmp bx, 0x456
jne 0x42dc0d
mov esi, dword [0x468c6c]
cmp esi, dword [0x468c70]
mov ebx, 0xc0a
mov dword [esp + 0x18], ebx
jbe 0x42db61
call fcn.00439049
mov eax, 0x468c68
mov edi, eax
jmp 0x42db70
mov ebp, dword [0x468c70]
cmp dword [0x468c6c], ebp
jbe 0x42db83
call fcn.00439049
test edi, edi
je 0x42db8f
cmp edi, 0x468c68
je 0x42db94
call fcn.00439049
cmp esi, ebp
je 0x42dc02
cmp byte [esp + 0x16], 0
jne 0x42de61
test edi, edi
jne 0x42dbac
call fcn.00439049
cmp esi, dword [edi + 8]
jb 0x42dbb6
call fcn.00439049
cmp word [esi + 0x1c], bx
jne 0x42dbf0
cmp esi, dword [edi + 8]
jb 0x42dbc6
call fcn.00439049
mov cx, word [esi + 0x1c]
mov word [0x468c78], cx
cmp esi, dword [edi + 8]
jb 0x42dbdb
call fcn.00439049
push 0xffffffffffffffff
push 0
mov eax, esi
mov ecx, 0x468c84
call fcn.004040b0
mov byte [esp + 0x16], 1
cmp esi, dword [edi + 8]
jb 0x42dbfa
call fcn.00439049
add esi, 0x20
jmp 0x42db70
cmp byte [esp + 0x16], 0
jne 0x42de61
mov esi, dword [0x468c6c]
cmp esi, dword [0x468c70]
jbe 0x42dc20
call fcn.00439049
mov ebx, dword [sym.imp.KERNEL32.dll_ConvertDefaultLocale]
mov ebp, 0x468c68
jmp 0x42dc30
mov edi, dword [0x468c70]
cmp dword [0x468c6c], edi
jbe 0x42dc43
call fcn.00439049
test ebp, ebp
je 0x42dc4f
cmp ebp, 0x468c68
je 0x42dc54
call fcn.00439049
cmp esi, edi
je 0x42dd32
cmp byte [esp + 0x16], 0
jne 0x42de61
test ebp, ebp
jne 0x42dc70
call fcn.00439049
cmp esi, dword [ebp + 8]
jb 0x42dc7a
call fcn.00439049
movzx edi, word [esp + 0x18]
mov edx, edi
and edx, 0x3ff
push edx
call ebx
movzx ecx, word [esi + 0x1c]
cmp ecx, eax
jne 0x42dd20
push 0x104
lea edx, [esp + 0x22c]
push edx
push 0x1004
push edi
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
cmp esi, dword [ebp + 8]
jb 0x42dcb9
call fcn.00439049
movzx ecx, word [esi + 0x1c]
push 0x104
lea eax, [esp + 0x24]
push eax
push 0x1004
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x22c]
push eax
call fcn.00438dd3
add esp, 8
test eax, eax
jne 0x42dd20
cmp esi, dword [ebp + 8]
jb 0x42dcf6
call fcn.00439049
mov cx, word [esi + 0x1c]
mov word [0x468c78], cx
cmp esi, dword [ebp + 8]
jb 0x42dd0b
call fcn.00439049
push 0xffffffffffffffff
push 0
mov eax, esi
mov ecx, 0x468c84
call fcn.004040b0
mov byte [esp + 0x16], 1
cmp esi, dword [ebp + 8]
jb 0x42dd2a
call fcn.00439049
add esi, 0x20
jmp 0x42dc30
mov bl, byte [esp + 0x16]
test bl, bl
jne 0x42de61
mov esi, dword [0x468c6c]
cmp esi, dword [0x468c70]
jbe 0x42dd51
call fcn.00439049
mov eax, 0x468c68
mov edi, eax
jmp 0x42dd60
mov ebp, dword [0x468c70]
cmp dword [0x468c6c], ebp
jbe 0x42dd73
call fcn.00439049
test edi, edi
je 0x42dd7f
cmp edi, 0x468c68
je 0x42dd84
call fcn.00439049
cmp esi, ebp
je 0x42de5d
test bl, bl
jne 0x42de61
test edi, edi
jne 0x42dd9d
call fcn.00439049
cmp esi, dword [edi + 8]
jb 0x42dda7
call fcn.00439049
mov dx, word [esi + 0x1c]
xor dx, word [esp + 0x18]
test dx, 0x3ff
jne 0x42de4b
movzx ecx, word [esp + 0x18]
mov ebp, dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
push 0x104
lea eax, [esp + 0x22c]
push eax
push 0x1004
push ecx
call ebp
cmp esi, dword [edi + 8]
jb 0x42dde5
call fcn.00439049
movzx eax, word [esi + 0x1c]
push 0x104
lea edx, [esp + 0x24]
push edx
push 0x1004
push eax
call ebp
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x22c]
push edx
call fcn.00438dd3
add esp, 8
test eax, eax
jne 0x42de4b
cmp esi, dword [edi + 8]
jb 0x42de1e
call fcn.00439049
mov ax, word [esi + 0x1c]
mov word [0x468c78], ax
cmp esi, dword [edi + 8]
jb 0x42de32
call fcn.00439049
push 0xffffffffffffffff
push 0
mov eax, esi
mov ecx, 0x468c84
call fcn.004040b0
mov byte [esp + 0x16], 1
mov bl, byte [esp + 0x16]
cmp esi, dword [edi + 8]
jb 0x42de55
call fcn.00439049
add esi, 0x20
jmp 0x42dd60
test bl, bl
je 0x42de87
cmp dword [0x468c9c], 8
mov eax, dword [0x468c88]
jae 0x42de74
mov eax, 0x468c88
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x468ca0], eax
mov bl, 1
jmp 0x42df4f
mov esi, dword [0x468c6c]
cmp esi, dword [0x468c70]
mov word [0x468c78], 0x409
jbe 0x42dea3
call fcn.00439049
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov eax, 0x468c68
mov ebp, eax
mov edi, dword [0x468c70]
cmp dword [0x468c6c], edi
jbe 0x42dec3
call fcn.00439049
test ebp, ebp
je 0x42decf
cmp ebp, 0x468c68
je 0x42ded4
call fcn.00439049
cmp esi, edi
je 0x42df4b
cmp byte [esp + 0x17], 0
jne 0x42df4b
test ebp, ebp
jne 0x42dee8
call fcn.00439049
cmp esi, dword [ebp + 8]
jb 0x42def2
call fcn.00439049
mov cx, word [0x468c78]
cmp word [esi + 0x1c], cx
jne 0x42df39
cmp esi, dword [ebp + 8]
jb 0x42df09
call fcn.00439049
push 0xffffffffffffffff
push 0
mov eax, esi
mov ecx, 0x468c84
call fcn.004040b0
cmp dword [0x468c9c], 8
mov eax, dword [0x468c88]
jae 0x42df2c
mov eax, 0x468c88
push eax
call ebx
mov dword [0x468ca0], eax
mov byte [esp + 0x17], 1
cmp esi, dword [ebp + 8]
jb 0x42df43
call fcn.00439049
add esi, 0x20
jmp 0x42deb0
mov bl, byte [esp + 0x17]
movzx edx, word [0x468c78]
push 4
push 0x468c7a
push 3
push edx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
mov ecx, dword [esp + 0x434]
pop edi
pop esi
pop ebp
mov al, bl
pop ebx
xor ecx, esp
call fcn.0043782a
add esp, 0x428
ret 4