Function at 0x45cee0
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x621dcb
mov eax, dword fs:[0]
push eax
sub esp, 0x78
mov eax, dword [0x68d9ac]
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.00468c30
mov esi, eax
add esp, 4
mov dword [ebp - 0x84], esi
mov dword [ebp - 4], 0
test esi, esi
je 0x45d773
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.004080e0
push 0xffffffffffffffff
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 1
push eax
push esi
call fcn.00469cd0
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov byte [ebp - 4], 0
mov edi, eax
cmp edx, 0x10
jb 0x45cfa7
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45cf9d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45d794
push edx
push ecx
call fcn.004f9a35
add esp, 8
test edi, edi
jne 0x45d76a
push str.data
push esi
call fcn.00468b70
mov ebx, eax
add esp, 8
mov dword [ebp - 0x6c], ebx
test ebx, ebx
je 0x45d76a
call fcn.00407320
mov ecx, eax
test ecx, ecx
je 0x45d799
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x74], eax
push 0x62f1a8
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 2
call fcn.00408fd0
test al, al
jne 0x45d007
push edi
push 0x62f1a8
lea ecx, [ebp - 0x74]
call fcn.0040b130
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.004080e0
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.00469e00
add esp, 0x14
mov edx, dword [ebp - 0x2c]
mov byte [ebp - 4], 6
cmp edx, 0x10
jb 0x45d082
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45d078
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45d7a3
push edx
push ecx
call fcn.004f9a35
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 0x45d0b5
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 0x45d0e0
lea edx, [eax - 0x10]
mov byte [ebp - 4], 0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x45d76a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x45d76a
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.004080e0
push 0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 8
push eax
push ebx
call fcn.00469cd0
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov dword [ebp - 0x64], eax
mov byte [ebp - 4], 7
cmp edx, 0x10
jb 0x45d14f
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45d145
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45d7a8
push edx
push ecx
call fcn.004f9a35
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.004080e0
push 0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 9
push eax
push ebx
call fcn.00469cd0
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov dword [ebp - 0x60], eax
mov byte [ebp - 4], 7
cmp edx, 0x10
jb 0x45d1be
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45d1b4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45d7ad
push edx
push ecx
call fcn.004f9a35
add esp, 8
call fcn.00407320
mov ecx, eax
test ecx, ecx
je 0x45d7b2
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x78], eax
push 0x62f1a8
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xa
call fcn.00408fd0
test al, al
jne 0x45d1fc
push 0
push 0x62f1a8
lea ecx, [ebp - 0x78]
call fcn.0040b130
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.004080e0
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.00469e00
add esp, 0x14
mov edx, dword [ebp - 0x44]
mov byte [ebp - 4], 0xe
cmp edx, 0x10
jb 0x45d277
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45d26d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45d7bc
push edx
push ecx
call fcn.004f9a35
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 0x45d2a7
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 0x45d2d6
lea edx, [eax - 0x10]
mov byte [ebp - 4], 7
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45d2cb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x7c]
add edx, 0xfffffff0
jmp 0x45d0c1
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.004080e0
push 0xffffffffffffffff
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x10
push eax
push ebx
call fcn.00469cd0
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov byte [ebp - 4], 0xf
mov ebx, eax
cmp edx, 0x10
jb 0x45d344
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45d33a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45d7c1
push edx
push ecx
call fcn.004f9a35
add esp, 8
cmp ebx, 0xffffffff
je 0x45d35e
mov eax, dword [ebp - 0x5c]
push ebx
add eax, 8
push 0x62f094
push eax
call fcn.00407230
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 0x45d3be
cmp dword [ebx + 0xc], 0
jl 0x45d3b2
mov ecx, dword [ecx]
cmp ecx, dword [ebx]
jne 0x45d3b2
push dword [ebp - 0x68]
call fcn.00407060
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 0x45d3a4
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 0x45d3be
push dword [eax - 0xc]
lea ecx, [edx + 0x20]
push eax
call fcn.0040b130
push dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
push dword [ebp - 0x64]
add eax, 0x24
push str._d_d
push eax
call fcn.00407230
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 0x45d438
cmp dword [ebx + 0xc], 0
jl 0x45d42c
mov ecx, dword [ecx]
cmp ecx, dword [ebx]
jne 0x45d42c
push dword [ebp - 0x64]
call fcn.00407060
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 0x45d41e
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 0x45d438
push dword [eax - 0xc]
lea ecx, [edx + 0x28]
push eax
call fcn.0040b130
push str.addr
push dword [ebp - 0x6c]
mov dword [ebp - 0x68], 1
call fcn.00468b70
mov ebx, eax
add esp, 8
mov dword [ebp - 0x70], ebx
test ebx, ebx
je 0x45d730
call fcn.00407320
mov ecx, eax
test ecx, ecx
je 0x45d7c6
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x60], eax
push 0x62f1a8
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x11
call fcn.00408fd0
test al, al
jne 0x45d49a
push 0
push 0x62f1a8
lea ecx, [ebp - 0x60]
call fcn.0040b130
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.004080e0
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.00469e00
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 0x45d53d
cmp dword [ebx + 0xc], 0
jl 0x45d52d
mov eax, dword [edx]
cmp eax, dword [ebx]
jne 0x45d52d
push edx
call fcn.00407060
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 0x45d523
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 0x45d53f
push dword [ecx - 0xc]
mov ebx, dword [ebp - 0x5c]
push ecx
mov ecx, ebx
call fcn.0040b130
jmp 0x45d53f
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 0x45d55d
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 0x45d595
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45d58b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45d7d0
push edx
push ecx
call fcn.004f9a35
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 0x45d5c5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00407320
mov ecx, eax
test ecx, ecx
je 0x45d7d5
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x60], eax
push 0x62f1a8
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x15
call fcn.00408fd0
test al, al
jne 0x45d603
push 0
push 0x62f1a8
lea ecx, [ebp - 0x60]
call fcn.0040b130
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.004080e0
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.00469e00
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 0x45d6aa
cmp dword [ebx + 0xc], 0
jl 0x45d69f
mov eax, dword [ecx - 0x10]
cmp eax, dword [ebx]
jne 0x45d69f
push dword [ebp - 0x70]
call fcn.00407060
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 0x45d694
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 0x45d6aa
push dword [ecx - 0xc]
push ecx
mov ecx, edx
call fcn.0040b130
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 0x45d6c8
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 0x45d700
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45d6f6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45d7df
push edx
push ecx
call fcn.004f9a35
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 0x45d730
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 0x45d74e
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 0x45d76a
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
push esi
call fcn.00468ac0
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.004f9a43
mov esp, ebp
pop ebp
ret 4
call fcn.005e6a79
push 0x80004005
call fcn.00407030
call fcn.005e6a79
call fcn.005e6a79
call fcn.005e6a79
push 0x80004005
call fcn.00407030
call fcn.005e6a79
call fcn.005e6a79
push 0x80004005
call fcn.00407030
call fcn.005e6a79
push 0x80004005
call fcn.00407030
call fcn.005e6a79
int3