Function at 0x456070
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x559d93
mov eax, dword fs:[0]
push eax
mov eax, 0x1005c
call fcn.00554650
mov eax, dword [0x5c04b4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x1005c], ebx
mov dword [ebp - 4], 0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10064], 0
mov dword [ebp - 0x10060], eax
mov dword [ebp - 0x10068], eax
lea eax, [ebp - 0x10018]
mov dword [ebp - 0x10024], eax
neg eax
and eax, 3
mov dword [ebp - 0x10054], 0
mov dword [ebp - 0x10050], 0
mov dword [ebp - 0x10044], 0
mov dword [ebp - 0x10040], 0
lea eax, [ebp + eax - 0x10018]
mov dword [ebp - 0x1003c], 0
mov dword [ebp - 0x10020], eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x10034], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x1001c], eax
mov dword [ebp - 4], 2
fld dword [ebx + 0x34]
fldz
fcompp
fnstsw ax
test ah, 0x41
jp 0x456165
lea eax, [ebp - 0x10054]
mov ecx, 0x5855e8
push eax
lea eax, [ebx + 0x38]
push eax
call fcn.0049f9a0
mov edi, dword [ebx + 0x48]
mov eax, edi
cmp edi, 0x1d
jb 0x456174
mov eax, 0x1d
cmp dword [ebx + 0x4c], 0x10
jb 0x45617f
mov ecx, dword [ebx + 0x38]
jmp 0x456182
lea ecx, [ebx + 0x38]
push eax
mov edx, 0x5855f0
call fcn.0041f6b0
add esp, 4
test eax, eax
jne 0x4561a8
cmp edi, 0x1d
jae 0x45619e
or eax, 0xffffffff
jmp 0x4561a6
xor eax, eax
cmp edi, 0x1d
setne al
test eax, eax
sete al
test al, al
je 0x456481
fld dword [ebx + 0x34]
fldz
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jp 0x4561dc
lea eax, [ebp - 0x10054]
mov ecx, str.country
push eax
lea eax, [ebx + 0x50]
fstp st(0)
push eax
call fcn.0049f9a0
fldz
fld dword [ebx + 0x34]
fcompp
fnstsw ax
test ah, 1
jne 0x456247
sub esp, 0xc
lea ecx, [ebp - 0x10024]
push 0x585618
push 1
call fcn.00423ae0
cmp dword [ebp - 0x1003c], 0
mov edi, eax
mov dword [ebp - 0x10058], eax
je 0x456222
mov eax, dword [ebp - 0x10038]
mov dword [edi + 0x28], eax
mov eax, dword [ebp - 0x10038]
mov dword [eax + 0x2c], edi
jmp 0x45622f
mov dword [edi + 0x28], 0
mov dword [ebp - 0x1003c], edi
mov dword [ebp - 0x10038], edi
lea eax, [ebp - 0x10054]
mov dword [edi + 0x10], eax
mov dword [edi + 0x2c], 0
jmp 0x45624f
xor edi, edi
mov dword [ebp - 0x10058], edi
cmp dword [ebx + 0xc0], 0
lea eax, [ebp - 0x10054]
fldz
push ecx
fstp dword [esp]
push edi
lea ecx, [ebx + 4]
push eax
je 0x456277
lea eax, [ebx + 0xb0]
push eax
push 0x585620
jmp 0x4562a5
lea eax, [ebx + 0xc8]
push eax
push 0x573f80
call fcn.0049fa20
fldz
lea eax, [ebp - 0x10054]
push ecx
fstp dword [esp]
push edi
push eax
lea eax, [ebx + 0xe0]
push eax
push 0x573f88
lea ecx, [ebx + 4]
call fcn.0049fa20
mov eax, dword [ebx + 0x140]
cmp eax, dword [ebx + 0x144]
je 0x4562e1
fld dword [ebx + 0x34]
fldz
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jp 0x456335
lea eax, [ebp - 0x10054]
mov ecx, 0x585624
push eax
fstp st(0)
call fcn.0049f8e0
mov dword [ebp - 0x10058], eax
fldz
mov edi, dword [ebx + 0x144]
mov esi, dword [ebx + 0x140]
cmp esi, edi
je 0x456423
fld dword [ebx + 0x34]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x4563a2
cmp dword [esi + 0x28], 0
je 0x4563a2
sub esp, 0xc
lea ecx, [ebp - 0x10024]
fstp st(0)
push 0x585630
push 1
call fcn.00423ae0
cmp dword [esi + 0x2c], 0x10
mov ebx, eax
jb 0x45633f
mov ecx, dword [esi + 0x18]
jmp 0x456342
xor edi, edi
mov dword [ebp - 0x10058], edi
jmp 0x4562e3
lea ecx, [esi + 0x18]
cmp byte [ecx], 0
mov eax, ecx
je 0x456356
lea esp, [esp]
inc eax
cmp byte [eax], 0
jne 0x456350
sub eax, ecx
mov dword [ebx + 4], ecx
mov ecx, dword [ebp - 0x10058]
mov dword [ebx + 0xc], eax
cmp dword [ecx + 0x18], 0
je 0x456387
mov eax, dword [ecx + 0x1c]
fldz
mov dword [ebx + 0x28], eax
mov eax, dword [ecx + 0x1c]
mov dword [eax + 0x2c], ebx
mov dword [ecx + 0x1c], ebx
mov dword [ebx + 0x10], ecx
mov dword [ebx + 0x2c], 0
jmp 0x4563a4
fldz
mov dword [ebx + 0x28], 0
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x1c], ebx
mov dword [ebx + 0x10], ecx
mov dword [ebx + 0x2c], 0
jmp 0x4563a4
xor ebx, ebx
mov eax, dword [ebp - 0x1005c]
fld dword [eax + 0x34]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x456412
cmp dword [esi + 0x10], 0
je 0x456412
test ebx, ebx
je 0x456412
cmp dword [esi + 0x14], 0x10
fstp st(0)
jb 0x4563cc
mov eax, dword [esi]
jmp 0x4563ce
mov eax, esi
push 0
push 0
push eax
push 0x573ff8
lea ecx, [ebp - 0x10024]
call fcn.00423be0
cmp dword [ebx + 0x20], 0
mov ecx, eax
je 0x4563f9
mov eax, dword [ebx + 0x24]
mov dword [ecx + 0x14], eax
mov eax, dword [ebx + 0x24]
mov dword [eax + 0x18], ecx
jmp 0x456403
mov dword [ecx + 0x14], 0
mov dword [ebx + 0x20], ecx
fldz
mov dword [ebx + 0x24], ecx
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x18], 0
mov ebx, dword [ebp - 0x1005c]
add esi, 0x30
cmp esi, edi
jne 0x4562f7
fstp st(0)
fldz
cmp dword [ebx + 0x174], 0
je 0x4567ce
fld dword [ebx + 0x34]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x4566e1
sub esp, 0xc
lea ecx, [ebp - 0x10024]
fstp st(0)
push 0x5856d0
push 1
call fcn.00423ae0
cmp dword [ebp - 0x1003c], 0
mov edi, eax
je 0x4566ba
mov eax, dword [ebp - 0x10038]
mov dword [edi + 0x28], eax
mov eax, dword [ebp - 0x10038]
mov dword [eax + 0x2c], edi
jmp 0x4566c7
mov edx, 0x585638
lea ecx, [ebx + 0x38]
call fcn.0041ed20
test al, al
jne 0x456572
mov edx, 0x585658
lea ecx, [ebx + 0x38]
call fcn.0041ed20
test al, al
jne 0x456572
mov edx, 0x585688
lea ecx, [ebx + 0x38]
call fcn.0041ed20
test al, al
je 0x4564ef
fld dword [ebx + 0x34]
fldz
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jp 0x456427
lea eax, [ebp - 0x10054]
mov ecx, 0x573fdc
push eax
lea eax, [ebx + 0x14c]
fstp st(0)
push eax
call fcn.0049f9a0
jmp 0x456425
mov edx, 0x5856a4
lea ecx, [ebx + 0x38]
call fcn.0041ed20
test al, al
je 0x456425
fld dword [ebx + 0x34]
fldz
fcompp
fnstsw ax
test ah, 0x41
jp 0x456527
lea eax, [ebp - 0x10054]
mov ecx, 0x585618
push eax
call fcn.0049f8e0
mov edi, eax
jmp 0x456529
xor edi, edi
fldz
lea eax, [ebp - 0x10054]
push ecx
fstp dword [esp]
push edi
push eax
lea eax, [ebx + 0x110]
push eax
push 0x5856c0
lea ecx, [ebx + 4]
call fcn.0049fa20
fldz
lea eax, [ebp - 0x10054]
push ecx
fstp dword [esp]
push edi
push eax
lea eax, [ebx + 0x128]
push eax
push 0x5856c8
lea ecx, [ebx + 4]
call fcn.0049fa20
jmp 0x456425
fld dword [ebx + 0x34]
fldz
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jp 0x4565df
sub esp, 0xc
lea ecx, [ebp - 0x10024]
fstp st(0)
push 0x585678
push 1
call fcn.00423ae0
cmp dword [ebp - 0x1003c], 0
mov esi, eax
je 0x4565b8
mov eax, dword [ebp - 0x10038]
mov dword [esi + 0x28], eax
mov eax, dword [ebp - 0x10038]
mov dword [eax + 0x2c], esi
jmp 0x4565c5
mov dword [esi + 0x28], 0
mov dword [ebp - 0x1003c], esi
fldz
lea eax, [ebp - 0x10054]
mov dword [ebp - 0x10038], esi
mov dword [esi + 0x10], eax
mov dword [esi + 0x2c], 0
jmp 0x4565e1
xor esi, esi
fld dword [ebx + 0x34]
lea ecx, [ebx + 0x68]
fcompp
fnstsw ax
test ah, 1
jne 0x45661f
cmp dword [ecx + 0x10], 0
je 0x45661f
test esi, esi
je 0x45661f
cmp dword [ecx + 0x14], 0x10
jb 0x456602
mov ecx, dword [ecx]
push 0
push 0
push ecx
push 0x573ff8
lea ecx, [ebp - 0x10024]
call fcn.00423be0
push eax
mov ecx, esi
call fcn.00423a80
fldz
lea eax, [ebp - 0x10054]
push ecx
fstp dword [esp]
push esi
push eax
lea eax, [ebx + 0x80]
push eax
push 0x573f80
lea ecx, [ebx + 4]
call fcn.0049fa20
fldz
lea eax, [ebp - 0x10054]
push ecx
fstp dword [esp]
push esi
push eax
lea eax, [ebx + 0x98]
push eax
push 0x573f88
lea ecx, [ebx + 4]
call fcn.0049fa20
cmp dword [ebx + 0x108], 0
je 0x456425
fld dword [ebx + 0x34]
fldz
fcompp
fnstsw ax
test ah, 0x41
jp 0x456691
lea eax, [ebp - 0x10054]
mov ecx, 0x585618
push eax
call fcn.0049f8e0
jmp 0x456693
xor eax, eax
fldz
push ecx
fstp dword [esp]
push eax
lea eax, [ebp - 0x10054]
push eax
lea eax, [ebx + 0xf8]
push eax
push 0x585680
lea ecx, [ebx + 4]
call fcn.0049fa20
jmp 0x456425
mov dword [edi + 0x28], 0
mov dword [ebp - 0x1003c], edi
fldz
lea eax, [ebp - 0x10054]
mov dword [ebp - 0x10038], edi
mov dword [edi + 0x10], eax
mov dword [edi + 0x2c], 0
jmp 0x4566e3
xor edi, edi
fld dword [ebx + 0x34]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x456746
sub esp, 0xc
lea ecx, [ebp - 0x10024]
fstp st(0)
push 0x5852f8
push 1
call fcn.00423ae0
cmp dword [edi + 0x18], 0
mov esi, eax
je 0x45672b
mov eax, dword [edi + 0x1c]
fldz
mov dword [esi + 0x28], eax
mov eax, dword [edi + 0x1c]
mov dword [eax + 0x2c], esi
mov dword [edi + 0x1c], esi
mov dword [esi + 0x10], edi
mov dword [esi + 0x2c], 0
jmp 0x456748
fldz
mov dword [esi + 0x28], 0
mov dword [edi + 0x18], esi
mov dword [edi + 0x1c], esi
mov dword [esi + 0x10], edi
mov dword [esi + 0x2c], 0
jmp 0x456748
xor esi, esi
fld dword [ebx + 0x34]
lea edi, [ebx + 0x164]
fcompp
fnstsw ax
test ah, 1
jne 0x4567d0
cmp dword [edi + 0x10], 0
je 0x4567d0
sub esp, 0xc
lea ecx, [ebp - 0x10024]
push 0x574b50
push 1
call fcn.00423ae0
cmp dword [edi + 0x14], 0x10
mov ecx, eax
jb 0x45677f
mov edi, dword [edi]
cmp byte [edi], 0
mov eax, edi
je 0x45678c
inc eax
cmp byte [eax], 0
jne 0x456786
sub eax, edi
mov dword [ecx + 4], edi
mov dword [ecx + 0xc], eax
cmp dword [esi + 0x18], 0
je 0x4567b5
mov eax, dword [esi + 0x1c]
mov dword [ecx + 0x28], eax
mov eax, dword [esi + 0x1c]
mov dword [eax + 0x2c], ecx
mov dword [esi + 0x1c], ecx
mov dword [ecx + 0x10], esi
mov dword [ecx + 0x2c], 0
jmp 0x4567d0
mov dword [ecx + 0x28], 0
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], ecx
mov dword [ecx + 0x10], esi
mov dword [ecx + 0x2c], 0
jmp 0x4567d0
fstp st(0)
mov ebx, dword [ebp - 0x10060]
mov dword [ebx + 0x14], 0xf
mov dword [ebx + 0x10], 0
mov byte [ebx], 0
push 0
push 0
push ebx
lea edx, [ebp - 0x10054]
mov dword [ebp - 0x10064], 1
lea ecx, [ebp - 0x10060]
call fcn.00424360
add esp, 0xc
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x10024]
call fcn.00423e90
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00553510
mov esp, ebp
pop ebp
ret 4