Function at 0x4ab0e0
Capabilities:
Get geographical location

Disassembly:
sub esp, 0x164
mov eax, dword [0x519bc0]
xor eax, esp
mov dword [esp + 0x160], eax
mov ecx, dword [esp + 0x16c]
mov eax, dword [esp + 0x170]
push ebx
mov ebx, dword [esp + 0x16c]
push ebp
xor ebp, ebp
mov dword [esp + 8], ecx
mov dword [esp + 0x14], eax
cmp ecx, ebp
jne 0x4ab121
lea ecx, [esp + 0x38]
mov dword [esp + 8], ecx
mov dword [ecx], ebp
cmp eax, ebp
je 0x4ab12a
mov byte [eax], 0
cmp word [ebx], bp
jne 0x4ab138
xor eax, eax
xor edx, edx
jmp 0x4ab3d9
push esi
push edi
push 0x64
lea eax, [esp + 0xac]
push eax
push 0xe
xor edx, edx
push 0x400
mov word [esp + 0xb8], dx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
movzx eax, word [ebx]
xor ecx, ecx
xor esi, esi
xor edi, edi
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], ebp
mov word [esp + 0x44], cx
cmp ax, bp
je 0x4ab22b
lea ebx, [ebx]
movzx edx, ax
push edx
call fcn.00469150
test al, al
je 0x4ab1c6
push ebp
push 0xa
push edi
push esi
call fcn.004e68d0
mov ecx, eax
movzx eax, word [ebx]
mov edi, edx
cdq
add ecx, eax
mov eax, dword [esp + 0x14]
push ebp
adc edi, edx
mov edx, dword [esp + 0x1c]
push 0xa
sub ecx, 0x30
push edx
push eax
sbb edi, ebp
mov esi, ecx
call fcn.004e68d0
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jmp 0x4ab1f2
movzx eax, word [ebx]
cmp ax, word [esp + 0xa8]
jne 0x4ab1e1
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], ebp
jmp 0x4ab1f2
push eax
call dword [sym.imp.USER32.dll_IsCharAlphaW]
test eax, eax
jne 0x4ab200
cmp word [ebx], 0x28
je 0x4ab200
movzx eax, word [ebx + 2]
add ebx, 2
cmp ax, bp
jne 0x4ab180
jmp 0x4ab225
push 0x32
push ebx
lea ecx, [esp + 0x4c]
push ecx
call fcn.004694b0
lea edx, [esp + 0x44]
push 0x20
push edx
call fcn.004e94f5
add esp, 8
cmp eax, ebp
je 0x4ab225
xor ecx, ecx
mov word [eax], cx
mov edx, esi
or edx, edi
jne 0x4ab241
mov eax, dword [esp + 0x10]
mov esi, SysReAllocString
mov edi, esi
mov dword [eax], 0xffffffff
jmp 0x4ab3d3
cmp word [esp + 0x44], bp
je case.0x4ab31b.67
mov dword [esp + 0x20], 0x5e6
mov dword [esp + 0x24], 0x5e7
mov dword [esp + 0x28], 0x5e8
mov dword [esp + 0x2c], 0x5e9
mov dword [esp + 0x30], 0x507f50
mov dword [esp + 0x34], 0x507f4c
mov dword [esp + 0x38], 0x507f48
mov dword [esp + 0x3c], str.gmkb
xor ebx, ebx
mov edi, edi
mov ecx, dword [esp + ebx*4 + 0x20]
push ecx
call fcn.00463400
mov ecx, eax
lea ebp, [ecx + 2]
nop
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x4ab2a0
sub ecx, ebp
sar ecx, 1
push ecx
push eax
lea edx, [esp + 0x4c]
push edx
call fcn.004ea5f5
add esp, 0xc
test eax, eax
je 0x4ab2ca
inc ebx
cmp ebx, 4
jb 0x4ab290
jmp 0x4ab2e3
mov eax, dword [esp + ebx*4 + 0x30]
lea edx, [esp + 0x44]
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4ab2d4
movzx eax, word [esp + 0x46]
push eax
call sub.USER32.dll_CharUpperW
cmp eax, 0x42
jne 0x4ab300
movzx ecx, word [esp + 0x44]
push ecx
call sub.USER32.dll_CharLowerW
jmp 0x4ab305
mov ax, word [esp + 0x44]
movzx eax, ax
add eax, 0xffffffbe
cmp eax, 0x2b
ja case.0x4ab31b.67
movzx edx, byte [eax + 0x4ab414]
jmp dword [edx*4 + 0x4ab3f4]
mov eax, dword [esp + 0x10]
mov dword [eax], 0
mov eax, dword [esp + 0x1c]
test eax, eax
je case.0x4ab31b.67
mov byte [eax], 1
jmp case.0x4ab31b.67
mov ecx, dword [esp + 0x10]
push 0
mov dword [ecx], 1
push 0x400
jmp 0x4ab3ad
mov edx, dword [esp + 0x10]
push 0
mov dword [edx], 0xffffffff
push 0x3e8
jmp 0x4ab3ad
mov eax, dword [esp + 0x10]
push 0
mov dword [eax], 2
push 0x100000
jmp 0x4ab3ad
mov ecx, dword [esp + 0x10]
push 0
mov dword [ecx], 0xffffffff
push 0xf4240
jmp 0x4ab3ad
mov edx, dword [esp + 0x10]
push 0
mov dword [edx], 3
push 0x40000000
jmp 0x4ab3ad
mov eax, dword [esp + 0x10]
push 0
mov dword [eax], 0xffffffff
push 0x3b9aca00
push edi
push esi
call fcn.004e68d0
mov edi, edx
mov esi, eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, eax
or edx, ecx
je 0x4ab3d3
push ecx
push eax
push edi
push esi
call fcn.004e9e30
mov esi, eax
mov edi, edx
mov edx, edi
pop edi
mov eax, esi
pop esi
mov ecx, dword [esp + 0x168]
pop ebp
pop ebx
xor ecx, esp
call fcn.004e6b3a
add esp, 0x164
ret 0xc