Function at 0x45b420
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55a848
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x50
push ebx
push esi
push edi
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
mov ebx, ecx
mov dword [ebp - 0x10], esp
push 0
push 0
mov eax, dword [ebx + 0x368]
push 0xf0
push eax
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 4], 0
call edi
mov ecx, dword [ebx + 0x32c]
push 0
push 0
push 0xf0
push ecx
mov esi, eax
call edi
test esi, esi
mov dword [ebp - 0x30], eax
je 0x45b4d2
xor esi, esi
cmp esi, dword [ebx + 0x6c]
jge 0x45b848
mov eax, dword [ebx + 0x68]
lea edx, [esi + esi*2]
shl edx, 4
mov ecx, dword [eax + edx + 0x10]
test ecx, ecx
jne 0x45b4cf
mov edx, dword [ebx + 0x41c]
lea ecx, [ebp - 0x5c]
push ecx
push 0xffffffffffffffff
push 0x100d
push edx
mov dword [ebp - 0x5c], 1
mov dword [ebp - 0x54], esi
call edi
test eax, eax
jl 0x45b4cf
push 0
push eax
mov eax, dword [ebx + 0x41c]
push 0x1008
push eax
call edi
inc esi
jmp 0x45b482
xor edi, edi
mov eax, dword [ebx + 0x6c]
mov dword [ebp - 0x24], edi
cmp edi, eax
jge 0x45b835
mov edx, dword [ebx + 0x68]
lea ecx, [edi + edi*2]
shl ecx, 4
lea eax, [ecx + edx]
mov ecx, dword [ecx + edx + 0x10]
test ecx, ecx
jne 0x45b82f
mov ecx, dword [eax + 0x1c]
test ecx, ecx
jne 0x45b50c
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jne 0x45b82f
mov ecx, dword [0x5c2a74]
mov dword [ebp - 0x18], ecx
mov esi, dword [eax + 8]
lea edx, [ebp - 0x18]
push 0
push edx
lea ecx, [esi + 0x20]
mov byte [ebp - 4], 1
mov dword [ebp - 0x1c], esi
call fcn.004ea0e0
mov eax, dword [esi + 0x54]
test eax, eax
je 0x45b543
push 0x5c
push eax
call fcn.00526d20
add esp, 8
test eax, eax
jne 0x45b552
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0
call fcn.005421be
inc edi
jmp 0x45b4d4
push 0
push 0
inc eax
push 0
push 0
lea esi, [ebx + 0x400]
push eax
push edi
push 1
mov ecx, esi
call fcn.0053c346
mov edi, eax
cmp edi, 0xffffffff
mov dword [ebp - 0x38], edi
jle 0x45b820
mov eax, dword [ebp - 0x24]
mov ecx, esi
push eax
push 0
push 0
push 0
push 0
push 4
push 0
push edi
call fcn.0053c3c8
mov ecx, dword [ebp - 0x18]
push ecx
push 3
push edi
mov ecx, esi
call fcn.0053c441
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x58]
test eax, eax
je 0x45b5b5
push eax
push 5
push edi
mov ecx, esi
call fcn.0053c441
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x54]
push ecx
lea ecx, [ebp - 0x20]
call fcn.0054222c
mov eax, dword [0x5c74b4]
mov byte [ebp - 4], 2
test eax, eax
je 0x45b5e6
mov edx, dword [0x5c737c]
mov eax, dword [0x5c7380]
push edx
push eax
lea ecx, [ebp - 0x20]
call fcn.0053a9db
mov ecx, dword [ebp - 0x20]
push ecx
push 4
push edi
mov ecx, esi
call fcn.0053c441
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax + 0x42c]
mov esi, dword [eax + 0x428]
test edi, edi
jl 0x45b814
jg 0x45b615
test esi, esi
jbe 0x45b814
mov dword [ebp - 0x3c], 0x56a488
push 0
push 0x400
push edi
push esi
mov byte [ebp - 4], 3
call fcn.005288f0
mov dword [ebp - 0x1c], eax
mov ecx, esi
cdq
mov dword [ebp - 0x44], eax
sub ecx, eax
mov eax, edi
push 0
sbb eax, edx
push 0x400
push eax
push ecx
mov dword [ebp - 0x40], edx
call fcn.00528840
mov ebx, eax
and ebx, 0x800003ff
jns 0x45b660
dec ebx
or ebx, 0xfffffc00
inc ebx
mov eax, ebx
mov ecx, esi
shl eax, 0xa
cdq
sub ecx, eax
mov eax, edi
sbb eax, edx
mov edx, dword [ebp - 0x44]
sub ecx, edx
mov edx, dword [ebp - 0x40]
sbb eax, edx
push 0
push 0x100000
push eax
push ecx
call fcn.00528840
and eax, 0x800003ff
jns 0x45b694
dec eax
or eax, 0xfffffc00
inc eax
push 0
push 0x40000000
push edi
push esi
mov dword [ebp - 0x28], eax
call fcn.00528840
lea ecx, [ebp - 0x14]
push 3
push ecx
mov edi, eax
push 0xe
push 0x400
mov dword [ebp - 0x34], edi
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
jne 0x45b6e7
mov edi, 0x5a6888
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebp - 0x14]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebp - 0x34]
mov esi, dword [ebp - 0x28]
test edi, edi
jne 0x45b7b0
cmp esi, 0x3e7
jg 0x45b7b0
test esi, esi
jne 0x45b76e
cmp ebx, 0x3e7
jg 0x45b76e
test ebx, ebx
je 0x45b74e
mov eax, dword [ebp - 0x1c]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 3
cdq
and edx, 0x3ff
add eax, edx
mov edx, dword [0x5c7c30]
mov ecx, eax
mov eax, 0x66666667
sar ecx, 0xa
push edx
imul ecx
sar edx, 2
mov eax, edx
lea ecx, [ebp - 0x14]
shr eax, 0x1f
add edx, eax
push edx
push ecx
push ebx
jmp 0x45b7e8
mov eax, dword [0x5c7c2c]
mov ecx, dword [ebp - 0x1c]
push eax
push ecx
lea edx, [ebp - 0x58]
push str._d___s
push edx
call fcn.00527718
add esp, 0x10
jmp 0x45b7f9
lea ebx, [ebx + ebx*4]
lea eax, [ebx + ebx*4]
lea eax, [eax + eax*4]
shl eax, 3
cdq
and edx, 0x3ff
add eax, edx
mov ecx, eax
mov eax, dword [0x5c7c34]
push eax
mov eax, 0x66666667
sar ecx, 0xa
imul ecx
sar edx, 2
mov ecx, edx
lea eax, [ebp - 0x58]
shr ecx, 0x1f
add edx, ecx
push edx
lea edx, [ebp - 0x14]
push edx
push esi
push str._d_s_02d___s
push eax
jmp 0x45b7f1
lea eax, [esi + esi*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 3
cdq
and edx, 0x3ff
add eax, edx
mov edx, dword [0x5c7c38]
mov ecx, eax
mov eax, 0x66666667
sar ecx, 0xa
push edx
imul ecx
sar edx, 2
mov eax, edx
lea ecx, [ebp - 0x14]
shr eax, 0x1f
add edx, eax
push edx
push ecx
push edi
lea edx, [ebp - 0x58]
push str._d_s_02d___s
push edx
call fcn.00527718
add esp, 0x18
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x58]
push eax
push 2
push ecx
lea ecx, [edx + 0x400]
call fcn.0053c441
mov ebx, dword [ebp - 0x2c]
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 1
call fcn.005421be
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0
call fcn.005421be
mov edi, dword [ebp - 0x24]
inc edi
jmp 0x45b4d4
push 0
push 0
push 0
push 0xfffffffffffffffe
push ebx
push 0x458740
call fcn.005428e4
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret