Function at 0x4822a0
Capabilities:
Get geographical location

Disassembly:
sub esp, 0x164
mov eax, dword [0x4d88f0]
xor eax, esp
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x170]
push ebp
mov ebp, dword [esp + 0x170]
push esi
mov esi, dword [esp + 0x170]
push edi
xor edi, edi
mov dword [esp + 0xc], ebp
mov dword [esp + 0x18], eax
cmp ebp, edi
jne 0x4822e4
lea ecx, [esp + 0x3c]
mov dword [esp + 0xc], ecx
mov ebp, ecx
mov dword [ebp], edi
cmp eax, edi
je 0x4822ee
mov byte [eax], 0
cmp word [esi], di
jne 0x4822fc
xor eax, eax
xor edx, edx
jmp 0x4825b5
push ebx
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 [esi]
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
mov word [esp + 0x44], cx
cmp ax, di
je 0x4823f7
mov ebp, dword [sym.imp.USER32.dll_IsCharAlphaW]
movzx edx, ax
push edx
call fcn.0046f190
test al, al
je 0x48238a
push 0
push 0xa
push ebx
push edi
call fcn.004b01d0
mov ecx, eax
movzx eax, word [esi]
mov ebx, edx
cdq
add ecx, eax
mov eax, dword [esp + 0x14]
push 0
adc ebx, edx
mov edx, dword [esp + 0x1c]
push 0xa
sub ecx, 0x30
push edx
push eax
sbb ebx, 0
mov edi, ecx
call fcn.004b01d0
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jmp 0x4823b6
movzx eax, word [esi]
cmp ax, word [esp + 0xa8]
jne 0x4823a9
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0
jmp 0x4823b6
push eax
call ebp
test eax, eax
jne 0x4823c8
cmp word [esi], 0x28
je 0x4823c8
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x482341
jmp 0x4823ed
push 0x32
push esi
lea ecx, [esp + 0x4c]
push ecx
call fcn.0046f3f0
lea edx, [esp + 0x44]
push 0x20
push edx
call fcn.004b0312
add esp, 8
test eax, eax
je 0x4823ed
xor ecx, ecx
mov word [eax], cx
mov edx, edi
or edx, ebx
jne 0x48240a
mov ebp, dword [esp + 0x10]
mov edi, 0x7fffffff
mov ebx, edi
mov dword [ebp], 0xffffffff
jmp 0x4825b0
cmp word [esp + 0x44], 0
je case.0x4824f8.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], 0x4cab80
mov dword [esp + 0x34], 0x4cab7c
mov dword [esp + 0x38], 0x4cab78
mov dword [esp + 0x3c], str.gmkb
xor esi, esi
jmp 0x482460
mov eax, dword [esp + esi*4 + 0x20]
push eax
call fcn.00465ff0
lea ecx, [esp + 0x44]
mov edi, edi
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x482496
test dx, dx
je 0x482492
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x482496
add ecx, 4
add eax, 4
test dx, dx
jne 0x482470
xor eax, eax
jmp 0x48249b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4824a7
inc esi
cmp esi, 4
jb 0x482460
jmp 0x4824c0
mov eax, dword [esp + esi*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 0x4824b1
movzx ecx, word [esp + 0x46]
push ecx
call fcn.00476ea0
cmp eax, 0x42
jne 0x4824dd
movzx edx, word [esp + 0x44]
push edx
call sub.USER32.dll_CharLowerW
jmp 0x4824e2
mov ax, word [esp + 0x44]
movzx eax, ax
add eax, 0xffffffbe
cmp eax, 0x2b
ja case.0x4824f8.67
movzx eax, byte [eax + 0x4825f0]
jmp dword [eax*4 + 0x4825d0]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov dword [ecx], 0
test eax, eax
je case.0x4824f8.67
mov byte [eax], 1
jmp case.0x4824f8.67
mov edx, dword [esp + 0x10]
push 0
mov dword [edx], 1
push 0x400
jmp 0x48258a
mov eax, dword [esp + 0x10]
push 0
mov dword [eax], 0xffffffff
push 0x3e8
jmp 0x48258a
mov ecx, dword [esp + 0x10]
push 0
mov dword [ecx], 2
push 0x100000
jmp 0x48258a
mov edx, dword [esp + 0x10]
push 0
mov dword [edx], 0xffffffff
push 0xf4240
jmp 0x48258a
mov eax, dword [esp + 0x10]
push 0
mov dword [eax], 3
push 0x40000000
jmp 0x48258a
mov ecx, dword [esp + 0x10]
push 0
mov dword [ecx], 0xffffffff
push 0x3b9aca00
push ebx
push edi
call fcn.004b01d0
mov ebx, edx
mov edi, eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, eax
or edx, ecx
je 0x4825b0
push ecx
push eax
push ebx
push edi
call fcn.004b0810
mov edi, eax
mov ebx, edx
mov edx, ebx
mov eax, edi
pop ebx
mov ecx, dword [esp + 0x16c]
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.004af72c
add esp, 0x164
ret 0xc