Function at 0x45d5d0
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x62607b
mov eax, dword fs:[0]
push eax
sub esp, 0x78
mov eax, dword [0x690a1c]
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 dword [ebp - 0x5c], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x68], 0
push dword [eax]
call fcn.00469310
mov esi, eax
add esp, 4
mov dword [ebp - 0x84], esi
mov dword [ebp - 4], 0
test esi, esi
je 0x45de63
push 5
push str.errno
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004081d0
push 0xffffffffffffffff
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 1
push eax
push esi
call fcn.0046a3b0
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov byte [ebp - 4], 0
mov edi, eax
cmp edx, 0x10
jb 0x45d697
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45d68d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45de84
push edx
push ecx
call fcn.004fa0f5
add esp, 8
test edi, edi
jne 0x45de5a
push str.data
push esi
call fcn.00469250
mov ebx, eax
add esp, 8
mov dword [ebp - 0x6c], ebx
test ebx, ebx
je 0x45de5a
call fcn.00407410
mov ecx, eax
test ecx, ecx
je 0x45de89
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x74], eax
push 0x6331a8
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 2
call fcn.004090c0
test al, al
jne 0x45d6f7
push edi
push 0x6331a8
lea ecx, [ebp - 0x74]
call fcn.0040b220
push 7
push str.weather
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 3
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.004081d0
push 0xfde9
lea eax, [ebp - 0x74]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x7c]
push ebx
push eax
call fcn.0046a4e0
add esp, 0x14
mov edx, dword [ebp - 0x2c]
mov byte [ebp - 4], 6
cmp edx, 0x10
jb 0x45d772
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45d768
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45de93
push edx
push ecx
call fcn.004fa0f5
add esp, 8
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
mov edx, dword [ebp - 0x74]
or edi, 0xffffffff
mov byte [ebp - 4], 7
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45d7a5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x7c]
cmp dword [eax - 0xc], 0
jne 0x45d7d0
lea edx, [eax - 0x10]
mov byte [ebp - 4], 0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x45de5a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x45de5a
push 8
push str.temp_min
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004081d0
push 0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 8
push eax
push ebx
call fcn.0046a3b0
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov dword [ebp - 0x64], eax
mov byte [ebp - 4], 7
cmp edx, 0x10
jb 0x45d83f
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45d835
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45de98
push edx
push ecx
call fcn.004fa0f5
add esp, 8
push 8
push str.temp_max
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004081d0
push 0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 9
push eax
push ebx
call fcn.0046a3b0
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov dword [ebp - 0x60], eax
mov byte [ebp - 4], 7
cmp edx, 0x10
jb 0x45d8ae
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45d8a4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45de9d
push edx
push ecx
call fcn.004fa0f5
add esp, 8
call fcn.00407410
mov ecx, eax
test ecx, ecx
je 0x45dea2
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x78], eax
push 0x6331a8
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xa
call fcn.004090c0
test al, al
jne 0x45d8ec
push 0
push 0x6331a8
lea ecx, [ebp - 0x78]
call fcn.0040b220
push 0xb
push str.weather_pic
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], 0
call fcn.004081d0
push 0xfde9
lea eax, [ebp - 0x78]
mov byte [ebp - 4], 0xc
push eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x80]
push ebx
push eax
call fcn.0046a4e0
add esp, 0x14
mov edx, dword [ebp - 0x44]
mov byte [ebp - 4], 0xe
cmp edx, 0x10
jb 0x45d967
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45d95d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45deac
push edx
push ecx
call fcn.004fa0f5
add esp, 8
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], 0
mov edx, dword [ebp - 0x78]
mov eax, edi
mov byte [ebp - 4], 0xf
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45d997
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x80]
cmp dword [eax - 0xc], 0
jne 0x45d9c6
lea edx, [eax - 0x10]
mov byte [ebp - 4], 7
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45d9bb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x7c]
add edx, 0xfffffff0
jmp 0x45d7b1
push 8
push str.cityCode
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004081d0
push 0xffffffffffffffff
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x10
push eax
push ebx
call fcn.0046a3b0
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov byte [ebp - 4], 0xf
mov ebx, eax
cmp edx, 0x10
jb 0x45da34
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45da2a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45deb1
push edx
push ecx
call fcn.004fa0f5
add esp, 8
cmp ebx, 0xffffffff
je 0x45da4e
mov eax, dword [ebp - 0x5c]
push ebx
add eax, 8
push 0x633094
push eax
call fcn.00407320
add esp, 0xc
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x7c]
mov ebx, dword [edx + 0x20]
lea ecx, [eax - 0x10]
sub ebx, 0x10
mov dword [ebp - 0x68], ecx
cmp ecx, ebx
je 0x45daae
cmp dword [ebx + 0xc], 0
jl 0x45daa2
mov ecx, dword [ecx]
cmp ecx, dword [ebx]
jne 0x45daa2
push dword [ebp - 0x68]
call fcn.00407150
mov dword [ebp - 0x68], eax
add esp, 4
mov ecx, edi
lea eax, [ebx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x45da94
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x68]
add eax, 0x10
mov dword [ecx + 0x20], eax
jmp 0x45daae
push dword [eax - 0xc]
lea ecx, [edx + 0x20]
push eax
call fcn.0040b220
push dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
push dword [ebp - 0x64]
add eax, 0x24
push str._d_d
push eax
call fcn.00407320
mov edx, dword [ebp - 0x5c]
add esp, 0x10
mov eax, dword [ebp - 0x80]
mov ebx, dword [edx + 0x28]
lea ecx, [eax - 0x10]
sub ebx, 0x10
mov dword [ebp - 0x64], ecx
cmp ecx, ebx
je 0x45db28
cmp dword [ebx + 0xc], 0
jl 0x45db1c
mov ecx, dword [ecx]
cmp ecx, dword [ebx]
jne 0x45db1c
push dword [ebp - 0x64]
call fcn.00407150
mov dword [ebp - 0x64], eax
add esp, 4
mov ecx, edi
lea eax, [ebx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x45db0e
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x64]
add eax, 0x10
mov dword [ecx + 0x28], eax
jmp 0x45db28
push dword [eax - 0xc]
lea ecx, [edx + 0x28]
push eax
call fcn.0040b220
push str.addr
push dword [ebp - 0x6c]
mov dword [ebp - 0x68], 1
call fcn.00469250
mov ebx, eax
add esp, 8
mov dword [ebp - 0x70], ebx
test ebx, ebx
je 0x45de20
call fcn.00407410
mov ecx, eax
test ecx, ecx
je 0x45deb6
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x60], eax
push 0x6331a8
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x11
call fcn.004090c0
test al, al
jne 0x45db8a
push 0
push 0x6331a8
lea ecx, [ebp - 0x60]
call fcn.0040b220
push 8
push str.province
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x12
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004081d0
push 0xfde9
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x13
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x64]
push ebx
push eax
call fcn.0046a4e0
add esp, 0x14
mov ecx, dword [eax]
mov eax, dword [ebp - 0x5c]
mov byte [ebp - 4], 0x14
lea edx, [ecx - 0x10]
mov ebx, dword [eax]
sub ebx, 0x10
cmp edx, ebx
je 0x45dc2d
cmp dword [ebx + 0xc], 0
jl 0x45dc1d
mov eax, dword [edx]
cmp eax, dword [ebx]
jne 0x45dc1d
push edx
call fcn.00407150
add esp, 4
mov dword [ebp - 0x6c], eax
mov ecx, edi
lea edx, [ebx + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45dc13
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x5c]
add eax, 0x10
mov dword [ebx], eax
jmp 0x45dc2f
push dword [ecx - 0xc]
mov ebx, dword [ebp - 0x5c]
push ecx
mov ecx, ebx
call fcn.0040b220
jmp 0x45dc2f
mov ebx, eax
mov edx, dword [ebp - 0x64]
mov eax, edi
mov byte [ebp - 4], 0x13
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45dc4d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x12
cmp edx, 0x10
jb 0x45dc85
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45dc7b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45dec0
push edx
push ecx
call fcn.004fa0f5
add esp, 8
mov edx, dword [ebp - 0x60]
mov eax, edi
mov dword [ebp - 0x18], 0
add edx, 0xfffffff0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 0xf
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45dcb5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00407410
mov ecx, eax
test ecx, ecx
je 0x45dec5
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x60], eax
push 0x6331a8
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x15
call fcn.004090c0
test al, al
jne 0x45dcf3
push 0
push 0x6331a8
lea ecx, [ebp - 0x60]
call fcn.0040b220
push 4
push str.city
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x16
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004081d0
push 0xfde9
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x17
push eax
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0x70]
lea eax, [ebp - 0x6c]
push eax
call fcn.0046a4e0
add esp, 0x14
mov ecx, dword [eax]
lea edx, [ebx + 4]
mov ebx, dword [edx]
sub ebx, 0x10
mov byte [ebp - 4], 0x18
lea eax, [ecx - 0x10]
mov dword [ebp - 0x70], eax
cmp eax, ebx
je 0x45dd9a
cmp dword [ebx + 0xc], 0
jl 0x45dd8f
mov eax, dword [ecx - 0x10]
cmp eax, dword [ebx]
jne 0x45dd8f
push dword [ebp - 0x70]
call fcn.00407150
add esp, 4
mov dword [ebp - 0x70], eax
mov ecx, edi
lea edx, [ebx + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45dd84
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x5c]
add eax, 0x10
mov dword [ecx + 4], eax
jmp 0x45dd9a
push dword [ecx - 0xc]
push ecx
mov ecx, edx
call fcn.0040b220
mov edx, dword [ebp - 0x6c]
mov eax, edi
mov byte [ebp - 4], 0x17
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45ddb8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x16
cmp edx, 0x10
jb 0x45ddf0
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45dde6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45decf
push edx
push ecx
call fcn.004fa0f5
add esp, 8
mov edx, dword [ebp - 0x60]
mov eax, edi
mov dword [ebp - 0x18], 0
add edx, 0xfffffff0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 0xf
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45de20
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x80]
mov eax, edi
mov byte [ebp - 4], 7
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45de3e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x7c]
mov byte [ebp - 4], 0
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], edi
dec edi
test edi, edi
jg 0x45de5a
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
push esi
call fcn.004691a0
add esp, 4
mov eax, dword [ebp - 0x68]
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.004fa103
mov esp, ebp
pop ebp
ret 4
call fcn.005e72a0
push 0x80004005
call fcn.00407120
call fcn.005e72a0
call fcn.005e72a0
call fcn.005e72a0
push 0x80004005
call fcn.00407120
call fcn.005e72a0
call fcn.005e72a0
push 0x80004005
call fcn.00407120
call fcn.005e72a0
push 0x80004005
call fcn.00407120
call fcn.005e72a0
int3