Function at 0x41e870
Capabilities:
Get geographical location

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x41eeff
sub esp, 0x48
mov edx, dword [esp + 0x54]
lea ebx, [edx - 1]
test edx, ebx
jne 0x41eeaf
test edx, edx
je 0x41eeaf
cmp edx, 0x40
ja 0x41ee60
mov ebx, dword [esp + 0x58]
test ebx, ebx
jne 0x41ede1
mov eax, edx
mov dword [esp + 0x44], edx
mov ebx, dword [esp + 0x50]
shr ebx, 6
mov ebp, dword [esp + 0x4c]
jmp 0x41e8df
mov esi, dword [esp + 0x30]
lea ebx, [esi - 1]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x54]
mov eax, edi
mov edx, dword [esp + 0x44]
mov ebp, esi
mov dword [esp + 0x30], ebx
test ebx, ebx
jl 0x41edda
test byte [ebp], al
cmp ebx, 8
jae 0x41ee54
lea ecx, [ebp + ebx*8 + 0x40]
lea edx, [ebp + ebx*8]
mov esi, dword [edx]
or esi, dword [ecx]
mov edx, dword [edx + 4]
or edx, dword [ecx + 4]
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.0041e450
cmp dword [esp + 0x10], 0xffffffff
setne al
cmp dword [esp + 0xc], 0xffffffff
setne cl
or ecx, eax
test cl, cl
je 0x41e8c8
mov eax, dword [esp + 0x30]
test eax, eax
jl 0x41edc6
mov edx, dword [esp + 0x4c]
test byte [edx], al
cmp eax, 8
jae 0x41ee4a
lea ecx, [edx + eax*8 + 0x40]
lea ebx, [edx + eax*8]
mov ebp, dword [ebx]
or ebp, dword [ecx]
mov ebx, dword [ebx + 4]
or ebx, dword [ecx + 4]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x54]
mov dword [esp + 8], ecx
call fcn.0041e450
mov eax, dword [esp + 0x10]
mov ecx, eax
not eax
cmp eax, 1
sete dl
seta bl
mov ebp, dword [esp + 0xc]
mov esi, ebp
xchg ebp, ebx
not ebx
xchg ebp, ebx
test ebp, ebp
xchg edi, ebx
setae bl
xchg edi, ebx
and edi, edx
or ebx, edi
test bl, bl
je 0x41edbb
xor edx, edx
mov ebx, 0x20
mov dword [esp + 0x24], ebx
test edx, edx
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg edi, ebx
seta bl
xchg edi, ebx
cmp eax, 0x10000
setae bl
and ebx, ebp
or edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
je 0x41edae
shr eax, 0x10
mov ebx, edx
shl edx, 0x10
or edx, eax
shr ebx, 0x10
mov ebp, dword [esp + 0x24]
add ebp, 0x10
mov dword [esp + 0x1c], ebx
test ebx, ebx
xchg edi, ebx
seta bl
xchg edi, ebx
cmp edx, 0x100
mov eax, ebp
xchg ebp, ebx
setae bl
xchg ebp, ebx
test ebx, ebx
sete bl
and ebx, ebp
or ebx, edi
test bl, bl
je 0x41eda1
shr edx, 8
mov ebx, dword [esp + 0x1c]
mov ebp, ebx
shl ebx, 0x18
or ebx, edx
shr ebp, 8
lea edx, [eax + 8]
test ebp, ebp
jne 0x41ee3c
cmp ebx, 0x100
jae 0x41ee30
mov dword [esp + 0x24], edx
mov dword [esp + 0x40], ecx
lea ebp, [0xb0c380]
movzx ebx, byte [ebx + ebp]
mov dword [esp + 0x3c], ebx
lea edi, [edx + ebx - 0x40]
xchg edi, ebx
neg ebx
xchg edi, ebx
lea ebp, [edi - 0x20]
mov eax, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
cmp ebp, 0x20
sbb edx, edx
mov dword [esp + 0x38], edx
cmp edi, 0x20
sbb ebx, ebx
cmp eax, 0x20
sbb edx, edx
mov ecx, eax
mov eax, esi
shl esi, cl
and edx, esi
mov ecx, edi
mov esi, edx
mov edx, dword [esp + 0x40]
shl edx, cl
and edx, ebx
mov ecx, ebp
mov ebp, eax
shr eax, cl
mov ecx, ebx
mov ebx, dword [esp + 0x38]
and eax, ebx
or eax, edx
or eax, esi
test eax, eax
setne dl
mov byte [esp + 0x17], dl
mov ebx, ecx
mov ecx, edi
shl ebp, cl
and ebp, ebx
test ebp, ebp
setne bl
mov esi, ebp
mov ebp, dword [esp + 0x30]
shl ebp, 6
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x24]
add edx, edi
lea edx, [ebp + edx]
mov dword [esp + 0x34], edx
movzx ebp, byte [esp + 0x17]
or ebx, ebp
test bl, bl
jne 0x41eccf
lea ebx, [ecx - 0x40]
neg ebx
mov ebp, dword [esp + 0x30]
dec ebp
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x54]
jmp 0x41eb0c
mov eax, dword [esp + 0x2c]
lea ebp, [eax - 1]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x54]
mov esi, eax
mov edi, ecx
mov ebx, edx
mov edx, dword [esp + 0x34]
test ebp, ebp
jl 0x41ecc8
cmp ebp, 8
jae 0x41ee0a
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x20], ebx
lea eax, [esi + ebp*8 + 0x40]
lea ecx, [esi + ebp*8]
mov edx, dword [ecx]
or edx, dword [eax]
mov ecx, dword [ecx + 4]
or ecx, dword [eax + 4]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.0041e450
mov eax, dword [esp + 0x10]
cmp eax, 1
seta cl
sete dl
mov ebx, dword [esp + 0xc]
test ebx, ebx
xchg ebp, ebx
setae bl
xchg ebp, ebx
nop
and ebp, edx
or ebp, ecx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x41ecbb
mov ecx, eax
xor edx, edx
mov ebp, 0x20
mov dword [esp + 0x28], ebp
test edx, edx
xchg edi, ebx
seta bl
xchg edi, ebx
mov esi, ebx
sete bl
cmp eax, 0x10000
xchg ebp, ebx
setae bl
xchg ebp, ebx
and ebp, ebx
or ebp, edi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x41ecae
shr eax, 0x10
mov ebx, edx
shl edx, 0x10
or edx, eax
shr ebx, 0x10
mov ebp, dword [esp + 0x28]
add ebp, 0x10
mov dword [esp + 0x18], ebx
test ebx, ebx
xchg edi, ebx
seta bl
xchg edi, ebx
mov eax, ebp
xchg ebp, ebx
sete bl
xchg ebp, ebx
cmp edx, 0x100
setae bl
and ebx, ebp
or ebx, edi
test bl, bl
je 0x41eca1
shr edx, 8
mov ebx, dword [esp + 0x18]
mov ebp, ebx
shl ebx, 0x18
or ebx, edx
shr ebp, 8
lea edx, [eax + 8]
test ebp, ebp
jne 0x41edfc
cmp ebx, 0x100
jae 0x41edf0
test ecx, ecx
xchg ebp, ebx
setne bl
xchg ebp, ebx
test esi, esi
xchg esi, ebx
setne bl
xchg esi, ebx
lea edi, [0xb0c380]
movzx ebx, byte [ebx + edi]
add edx, ebx
mov ebx, dword [esp + 0x20]
sub ebx, edx
lea edx, [ebx + 0x40]
or esi, ebp
xchg esi, eax
test al, al
xchg esi, eax
je 0x41eaf3
mov eax, dword [esp + 0x44]
cmp edx, eax
jbe 0x41ec9d
mov ecx, dword [esp + 0x34]
mov ebx, ecx
sub ecx, eax
mov ebp, dword [0xb532e8]
cmp ebp, 0x2000
jbe 0x41ec99
cmp dword [0xb532ec], ebp
jae 0x41ec99
shr ebp, 0xd
nop
lea esi, [ebp + ecx - 1]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
and esi, ebp
cmp esi, ebx
ja 0x41ec95
nop
sub ebx, edx
and ebp, ecx
cmp ebp, ebx
jb 0x41ec91
sub ecx, ebp
add eax, ecx
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], eax
add esp, 0x48
ret
mov ebp, ecx
jmp 0x41ec85
mov ebp, ecx
jmp 0x41ec85
mov ebp, ecx
jmp 0x41ec85
mov eax, edx
jmp 0x41ec46
mov ebx, edx
mov ebp, dword [esp + 0x18]
mov edx, eax
jmp 0x41ebf7
mov ebx, edx
mov ebp, dword [esp + 0x28]
mov edx, eax
jmp 0x41ebb8
mov ecx, eax
mov edx, ecx
mov eax, ebx
xor ebp, ebp
jmp 0x41eb78
mov edx, ebx
jmp 0x41ec3e
test esi, esi
setae bl
cmp eax, 1
xchg ebp, ebx
seta bl
xchg ebp, ebx
xchg edi, ebx
sete bl
xchg edi, ebx
and edi, ebx
or edi, ebp
xchg edi, eax
test al, al
xchg edi, eax
je 0x41ed96
xor ecx, ecx
mov ebx, 0x20
cmp eax, 0x10000
xchg ebp, ebx
setae bl
xchg ebp, ebx
test ecx, ecx
xchg edi, ebx
sete bl
xchg edi, ebx
mov esi, edx
seta dl
and edi, ebp
or edx, edi
test dl, dl
je 0x41ed90
shr eax, 0x10
mov edx, ecx
shl ecx, 0x10
or ecx, eax
shr edx, 0x10
add ebx, 0x10
cmp ecx, 0x100
xchg ebp, ebx
setae bl
xchg ebp, ebx
test edx, edx
xchg edi, ebx
sete bl
xchg edi, ebx
mov eax, ebx
seta bl
and edi, ebp
or ebx, edi
test bl, bl
je 0x41ed88
shr ecx, 8
mov ebx, edx
shl edx, 0x18
or edx, ecx
shr ebx, 8
lea ebp, [eax + 8]
test ebx, ebx
jne 0x41ee22
cmp edx, 0x100
jae 0x41ee16
lea eax, [0xb0c380]
movzx eax, byte [edx + eax]
lea edx, [eax + ebp - 0x40]
neg edx
jmp 0x41ec3e
mov ebp, eax
mov ebx, edx
mov edx, ecx
jmp 0x41ed5f
mov edx, ecx
mov ecx, eax
jmp 0x41ed2c
mov ecx, eax
xor ebx, ebx
mov eax, esi
jmp 0x41ecfa
mov ebp, dword [esp + 0x1c]
mov ebx, edx
mov edx, eax
jmp 0x41ea27
mov ebx, edx
mov ebp, dword [esp + 0x24]
mov edx, eax
jmp 0x41e9e6
mov edx, eax
xor ebx, ebx
mov eax, ebp
jmp 0x41e9a8
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
add esp, 0x48
ret
mov eax, ebx
jmp 0x41e935
lea ebx, [ebx + edx - 1]
mov eax, edx
neg edx
and edx, ebx
jmp 0x41e8b7
mov eax, ebx
mov ecx, 0x100
call fcn.004596b0
mov esi, ebp
mov eax, ebx
mov ecx, 0x100
call fcn.00459780
mov eax, ebp
mov ecx, 8
call fcn.004596a0
mov eax, edx
mov ecx, 0x100
call fcn.004596b0
mov esi, ebx
mov eax, edx
mov ecx, 0x100
call fcn.00459780
mov eax, ebx
mov ecx, 0x100
call fcn.004596b0
mov esi, ebp
mov eax, ebx
mov ecx, 0x100
call fcn.00459780
mov ecx, 8
call fcn.004596a0
mov eax, ebx
mov ecx, 8
call fcn.004596a0
call fcn.00432510
lea eax, [0x7e9a90]
mov dword [esp], eax
mov dword [esp + 4], 0xf
call fcn.00432db0
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00432ac0
call fcn.00432730
call fcn.00432580
lea eax, [0x7e8142]
mov dword [esp], eax
mov dword [esp + 4], 0xd
call fcn.00430c90
call fcn.00432510
lea eax, [0x7e9a90]
mov dword [esp], eax
mov dword [esp + 4], 0xf
call fcn.00432db0
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00432ac0
call fcn.00432730
call fcn.00432580
lea eax, [0x7f6359]
mov dword [esp], eax
mov dword [esp + 4], 0x21
call fcn.00430c90
nop
call fcn.00457de0
jmp fcn.0041e870