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

Disassembly:
sub esp, 0x428
mov eax, dword [0x462408]
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 0x42b8a2
mov esi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
call esi
movzx eax, ax
push eax
push str.User_default_LangID:_0x_X
push 0x463650
xor eax, eax
call fcn.0042a920
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 0x463650
xor eax, eax
call fcn.0042a920
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetVersion]
movzx eax, ax
cmp ax, 0x105
je 0x42b89e
cmp ax, 0x205
je 0x42b89e
call edi
jmp 0x42b8b2
call esi
jmp 0x42b8b2
push 0x10
lea edx, [esp + 0x20]
push edx
push eax
call fcn.00436c31
add esp, 0xc
mov esi, dword [0x464bc4]
cmp esi, dword [0x464bc8]
movzx ebx, ax
mov dword [esp + 0x18], ebx
jbe 0x42b8cc
call fcn.0043641d
mov eax, 0x464bc0
mov ebp, eax
jmp 0x42b8e0
mov edi, dword [0x464bc8]
cmp dword [0x464bc4], edi
jbe 0x42b8f3
call fcn.0043641d
test ebp, ebp
je 0x42b8ff
cmp ebp, 0x464bc0
je 0x42b904
call fcn.0043641d
cmp esi, edi
je 0x42b971
cmp byte [esp + 0x16], 0
jne 0x42bcb1
test ebp, ebp
jne 0x42b91c
call fcn.0043641d
cmp esi, dword [ebp + 8]
jb 0x42b926
call fcn.0043641d
cmp word [esi + 0x1c], bx
jne 0x42b95f
cmp esi, dword [ebp + 8]
jb 0x42b936
call fcn.0043641d
mov ax, word [esi + 0x1c]
mov word [0x464bd0], ax
cmp esi, dword [ebp + 8]
jb 0x42b94a
call fcn.0043641d
push 0xffffffffffffffff
push 0
mov eax, esi
mov ecx, 0x464bdc
call fcn.00404120
mov byte [esp + 0x16], 1
cmp esi, dword [ebp + 8]
jb 0x42b969
call fcn.0043641d
add esi, 0x20
jmp 0x42b8e0
cmp byte [esp + 0x16], 0
jne 0x42bcb1
cmp bx, 0x403
je 0x42b995
cmp bx, 0x42d
je 0x42b995
cmp bx, 0x456
jne 0x42ba5d
mov esi, dword [0x464bc4]
cmp esi, dword [0x464bc8]
mov ebx, 0xc0a
mov dword [esp + 0x18], ebx
jbe 0x42b9b1
call fcn.0043641d
mov eax, 0x464bc0
mov edi, eax
jmp 0x42b9c0
mov ebp, dword [0x464bc8]
cmp dword [0x464bc4], ebp
jbe 0x42b9d3
call fcn.0043641d
test edi, edi
je 0x42b9df
cmp edi, 0x464bc0
je 0x42b9e4
call fcn.0043641d
cmp esi, ebp
je 0x42ba52
cmp byte [esp + 0x16], 0
jne 0x42bcb1
test edi, edi
jne 0x42b9fc
call fcn.0043641d
cmp esi, dword [edi + 8]
jb 0x42ba06
call fcn.0043641d
cmp word [esi + 0x1c], bx
jne 0x42ba40
cmp esi, dword [edi + 8]
jb 0x42ba16
call fcn.0043641d
mov cx, word [esi + 0x1c]
mov word [0x464bd0], cx
cmp esi, dword [edi + 8]
jb 0x42ba2b
call fcn.0043641d
push 0xffffffffffffffff
push 0
mov eax, esi
mov ecx, 0x464bdc
call fcn.00404120
mov byte [esp + 0x16], 1
cmp esi, dword [edi + 8]
jb 0x42ba4a
call fcn.0043641d
add esi, 0x20
jmp 0x42b9c0
cmp byte [esp + 0x16], 0
jne 0x42bcb1
mov esi, dword [0x464bc4]
cmp esi, dword [0x464bc8]
jbe 0x42ba70
call fcn.0043641d
mov ebx, dword [sym.imp.KERNEL32.dll_ConvertDefaultLocale]
mov ebp, 0x464bc0
jmp 0x42ba80
mov edi, dword [0x464bc8]
cmp dword [0x464bc4], edi
jbe 0x42ba93
call fcn.0043641d
test ebp, ebp
je 0x42ba9f
cmp ebp, 0x464bc0
je 0x42baa4
call fcn.0043641d
cmp esi, edi
je 0x42bb82
cmp byte [esp + 0x16], 0
jne 0x42bcb1
test ebp, ebp
jne 0x42bac0
call fcn.0043641d
cmp esi, dword [ebp + 8]
jb 0x42baca
call fcn.0043641d
movzx edi, word [esp + 0x18]
mov edx, edi
and edx, 0x3ff
push edx
call ebx
movzx ecx, word [esi + 0x1c]
cmp ecx, eax
jne 0x42bb70
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 0x42bb09
call fcn.0043641d
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.00436262
add esp, 8
test eax, eax
jne 0x42bb70
cmp esi, dword [ebp + 8]
jb 0x42bb46
call fcn.0043641d
mov cx, word [esi + 0x1c]
mov word [0x464bd0], cx
cmp esi, dword [ebp + 8]
jb 0x42bb5b
call fcn.0043641d
push 0xffffffffffffffff
push 0
mov eax, esi
mov ecx, 0x464bdc
call fcn.00404120
mov byte [esp + 0x16], 1
cmp esi, dword [ebp + 8]
jb 0x42bb7a
call fcn.0043641d
add esi, 0x20
jmp 0x42ba80
mov bl, byte [esp + 0x16]
test bl, bl
jne 0x42bcb1
mov esi, dword [0x464bc4]
cmp esi, dword [0x464bc8]
jbe 0x42bba1
call fcn.0043641d
mov eax, 0x464bc0
mov edi, eax
jmp 0x42bbb0
mov ebp, dword [0x464bc8]
cmp dword [0x464bc4], ebp
jbe 0x42bbc3
call fcn.0043641d
test edi, edi
je 0x42bbcf
cmp edi, 0x464bc0
je 0x42bbd4
call fcn.0043641d
cmp esi, ebp
je 0x42bcad
test bl, bl
jne 0x42bcb1
test edi, edi
jne 0x42bbed
call fcn.0043641d
cmp esi, dword [edi + 8]
jb 0x42bbf7
call fcn.0043641d
mov dx, word [esi + 0x1c]
xor dx, word [esp + 0x18]
test dx, 0x3ff
jne 0x42bc9b
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 0x42bc35
call fcn.0043641d
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.00436262
add esp, 8
test eax, eax
jne 0x42bc9b
cmp esi, dword [edi + 8]
jb 0x42bc6e
call fcn.0043641d
mov ax, word [esi + 0x1c]
mov word [0x464bd0], ax
cmp esi, dword [edi + 8]
jb 0x42bc82
call fcn.0043641d
push 0xffffffffffffffff
push 0
mov eax, esi
mov ecx, 0x464bdc
call fcn.00404120
mov byte [esp + 0x16], 1
mov bl, byte [esp + 0x16]
cmp esi, dword [edi + 8]
jb 0x42bca5
call fcn.0043641d
add esi, 0x20
jmp 0x42bbb0
test bl, bl
je 0x42bcd7
cmp dword [0x464bf4], 8
mov eax, dword [0x464be0]
jae 0x42bcc4
mov eax, 0x464be0
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x464bf8], eax
mov bl, 1
jmp 0x42bdb3
mov esi, dword [0x464bc4]
cmp esi, dword [0x464bc8]
jbe 0x42bcea
call fcn.0043641d
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov eax, 0x464bc0
mov ebp, eax
jmp 0x42bd00
mov edi, dword [0x464bc8]
cmp dword [0x464bc4], edi
jbe 0x42bd13
call fcn.0043641d
test ebp, ebp
je 0x42bd1f
cmp ebp, 0x464bc0
je 0x42bd24
call fcn.0043641d
cmp esi, edi
je 0x42bdaf
cmp byte [esp + 0x17], 0
jne 0x42bdaf
test ebp, ebp
jne 0x42bd3c
call fcn.0043641d
cmp esi, dword [ebp + 8]
jb 0x42bd46
call fcn.0043641d
cmp word [esi + 0x1c], 0x409
jne 0x42bd9d
cmp esi, dword [ebp + 8]
jb 0x42bd58
call fcn.0043641d
mov cx, word [esi + 0x1c]
mov word [0x464bd0], cx
cmp esi, dword [ebp + 8]
jb 0x42bd6d
call fcn.0043641d
push 0xffffffffffffffff
push 0
mov eax, esi
mov ecx, 0x464bdc
call fcn.00404120
cmp dword [0x464bf4], 8
mov eax, dword [0x464be0]
jae 0x42bd90
mov eax, 0x464be0
push eax
call ebx
mov dword [0x464bf8], eax
mov byte [esp + 0x17], 1
cmp esi, dword [ebp + 8]
jb 0x42bda7
call fcn.0043641d
add esi, 0x20
jmp 0x42bd00
mov bl, byte [esp + 0x17]
movzx edx, word [0x464bd0]
push 4
push 0x464bd2
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.00434b37
add esp, 0x428
ret 4