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

Disassembly:
sub esp, 0x428
mov eax, dword [0x4563d0]
xor eax, esp
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x42c]
push ebx
push ebp
xor bl, bl
test eax, eax
push esi
push edi
mov dword [esp + 0x1c], 0
mov byte [esp + 0x16], bl
mov byte [esp + 0x17], bl
jne 0x41dcb4
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx eax, ax
mov dword [esp + 0x18], eax
jmp 0x41dccb
push 0x10
lea ecx, [esp + 0x20]
push ecx
push eax
call fcn.004237be
movzx edx, ax
add esp, 0xc
mov dword [esp + 0x18], edx
mov esi, dword [0x459dc4]
cmp esi, dword [0x459dc8]
jbe 0x41dcde
call fcn.00422ffd
mov eax, 0x459dc0
mov ebp, eax
jmp 0x41dcf0
mov edi, dword [0x459dc8]
cmp dword [0x459dc4], edi
jbe 0x41dd03
call fcn.00422ffd
test ebp, ebp
je 0x41dd0f
cmp ebp, 0x459dc0
je 0x41dd14
call fcn.00422ffd
cmp esi, edi
je 0x41dd88
test bl, bl
jne 0x41dfe1
test ebp, ebp
jne 0x41dd29
call fcn.00422ffd
cmp esi, dword [ebp + 8]
jb 0x41dd33
call fcn.00422ffd
mov ax, word [esi + 0x1c]
cmp ax, word [esp + 0x18]
jne 0x41dd76
cmp esi, dword [ebp + 8]
jb 0x41dd48
call fcn.00422ffd
mov cx, word [esi + 0x1c]
mov word [0x459dd0], cx
cmp esi, dword [ebp + 8]
jb 0x41dd5d
call fcn.00422ffd
push 0xffffffffffffffff
push 0
mov eax, esi
mov ecx, 0x459ddc
call fcn.00403570
mov byte [esp + 0x16], 1
mov bl, byte [esp + 0x16]
cmp esi, dword [ebp + 8]
jb 0x41dd80
call fcn.00422ffd
add esi, 0x20
jmp 0x41dcf0
test bl, bl
jne 0x41dfe1
mov esi, dword [0x459dc4]
cmp esi, dword [0x459dc8]
jbe 0x41dda3
call fcn.00422ffd
mov ebx, dword [sym.imp.KERNEL32.dll_ConvertDefaultLocale]
mov ebp, 0x459dc0
mov edi, edi
mov edi, dword [0x459dc8]
cmp dword [0x459dc4], edi
jbe 0x41ddc3
call fcn.00422ffd
test ebp, ebp
je 0x41ddcf
cmp ebp, 0x459dc0
je 0x41ddd4
call fcn.00422ffd
cmp esi, edi
je 0x41deb2
cmp byte [esp + 0x16], 0
jne 0x41dfe1
test ebp, ebp
jne 0x41ddf0
call fcn.00422ffd
cmp esi, dword [ebp + 8]
jb 0x41ddfa
call fcn.00422ffd
movzx edi, word [esp + 0x18]
mov edx, edi
and edx, 0x3ff
push edx
call ebx
movzx ecx, word [esi + 0x1c]
cmp ecx, eax
jne 0x41dea0
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 0x41de39
call fcn.00422ffd
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.00422afe
add esp, 8
test eax, eax
jne 0x41dea0
cmp esi, dword [ebp + 8]
jb 0x41de76
call fcn.00422ffd
mov cx, word [esi + 0x1c]
mov word [0x459dd0], cx
cmp esi, dword [ebp + 8]
jb 0x41de8b
call fcn.00422ffd
push 0xffffffffffffffff
push 0
mov eax, esi
mov ecx, 0x459ddc
call fcn.00403570
mov byte [esp + 0x16], 1
cmp esi, dword [ebp + 8]
jb 0x41deaa
call fcn.00422ffd
add esi, 0x20
jmp 0x41ddb0
mov bl, byte [esp + 0x16]
test bl, bl
jne 0x41dfe1
mov esi, dword [0x459dc4]
cmp esi, dword [0x459dc8]
jbe 0x41ded1
call fcn.00422ffd
mov eax, 0x459dc0
mov edi, eax
jmp 0x41dee0
mov ebp, dword [0x459dc8]
cmp dword [0x459dc4], ebp
jbe 0x41def3
call fcn.00422ffd
test edi, edi
je 0x41deff
cmp edi, 0x459dc0
je 0x41df04
call fcn.00422ffd
cmp esi, ebp
je 0x41dfdd
test bl, bl
jne 0x41dfe1
test edi, edi
jne 0x41df1d
call fcn.00422ffd
cmp esi, dword [edi + 8]
jb 0x41df27
call fcn.00422ffd
mov dx, word [esi + 0x1c]
xor dx, word [esp + 0x18]
test dx, 0x3ff
jne 0x41dfcb
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 0x41df65
call fcn.00422ffd
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.00422afe
add esp, 8
test eax, eax
jne 0x41dfcb
cmp esi, dword [edi + 8]
jb 0x41df9e
call fcn.00422ffd
mov ax, word [esi + 0x1c]
mov word [0x459dd0], ax
cmp esi, dword [edi + 8]
jb 0x41dfb2
call fcn.00422ffd
push 0xffffffffffffffff
push 0
mov eax, esi
mov ecx, 0x459ddc
call fcn.00403570
mov byte [esp + 0x16], 1
mov bl, byte [esp + 0x16]
cmp esi, dword [edi + 8]
jb 0x41dfd5
call fcn.00422ffd
add esi, 0x20
jmp 0x41dee0
test bl, bl
je 0x41e007
cmp dword [0x459df4], 8
mov eax, dword [0x459de0]
jae 0x41dff4
mov eax, 0x459de0
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x459df8], eax
mov bl, 1
jmp 0x41e0e7
mov esi, dword [0x459dc4]
cmp esi, dword [0x459dc8]
jbe 0x41e01a
call fcn.00422ffd
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov eax, 0x459dc0
mov ebp, eax
jmp 0x41e030
mov edi, dword [0x459dc8]
cmp dword [0x459dc4], edi
jbe 0x41e043
call fcn.00422ffd
test ebp, ebp
je 0x41e04f
cmp ebp, 0x459dc0
je 0x41e054
call fcn.00422ffd
cmp esi, edi
je 0x41e0e3
cmp byte [esp + 0x17], 0
jne 0x41e0e3
test ebp, ebp
jne 0x41e070
call fcn.00422ffd
cmp esi, dword [ebp + 8]
jb 0x41e07a
call fcn.00422ffd
cmp word [esi + 0x1c], 0x409
jne 0x41e0d1
cmp esi, dword [ebp + 8]
jb 0x41e08c
call fcn.00422ffd
mov cx, word [esi + 0x1c]
mov word [0x459dd0], cx
cmp esi, dword [ebp + 8]
jb 0x41e0a1
call fcn.00422ffd
push 0xffffffffffffffff
push 0
mov eax, esi
mov ecx, 0x459ddc
call fcn.00403570
cmp dword [0x459df4], 8
mov eax, dword [0x459de0]
jae 0x41e0c4
mov eax, 0x459de0
push eax
call ebx
mov dword [0x459df8], eax
mov byte [esp + 0x17], 1
cmp esi, dword [ebp + 8]
jb 0x41e0db
call fcn.00422ffd
add esi, 0x20
jmp 0x41e030
mov bl, byte [esp + 0x17]
movzx edx, word [0x459dd0]
push 4
push 0x459dd2
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.00422834
add esp, 0x428
ret 4