Function at 0x45d7f0
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x621f9c
mov eax, dword fs:[0]
push eax
sub esp, 0x104
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 - 0xbc], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0xe4], 0
push dword [eax]
call fcn.00468c30
mov esi, eax
add esp, 4
mov dword [ebp - 0x110], esi
mov dword [ebp - 4], 0
test esi, esi
je 0x45eb43
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 0x45d8c0
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45d8b6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45eb67
push edx
push ecx
call fcn.004f9a35
add esp, 8
test edi, edi
jne 0x45eb3a
push str.data
push esi
call fcn.00468b70
add esp, 8
mov dword [ebp - 0xc0], eax
test eax, eax
je 0x45eb3a
push 0x637014
push eax
call fcn.00468b70
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x45eb3a
call fcn.00407320
mov ecx, eax
test ecx, ecx
je 0x45eb6c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xec], eax
push 0x62f1a8
lea ecx, [ebp - 0xec]
mov byte [ebp - 4], 2
call fcn.00408fd0
test al, al
jne 0x45d942
push edi
push 0x62f1a8
lea ecx, [ebp - 0xec]
call fcn.0040b130
push 9
push str.condition
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 - 0xec]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xc4]
push ebx
push eax
call fcn.00469e00
add esp, 0x14
mov edx, dword [ebp - 0x2c]
mov byte [ebp - 4], 6
cmp edx, 0x10
jb 0x45d9c3
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45d9b9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45eb76
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 - 0xec]
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 0x45d9f9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0xc4]
cmp dword [eax - 0xc], 0
jne 0x45da27
lea edx, [eax - 0x10]
mov byte [ebp - 4], 0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x45eb3a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x45eb3a
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 - 0xd4], eax
mov byte [ebp - 4], 7
cmp edx, 0x10
jb 0x45da99
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45da8f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45eb7b
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 - 0x108], eax
mov byte [ebp - 4], 7
cmp edx, 0x10
jb 0x45db0b
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45db01
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45eb80
push edx
push ecx
call fcn.004f9a35
add esp, 8
call fcn.00407320
mov ecx, eax
test ecx, ecx
je 0x45eb85
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xf0], eax
push 0x62f1a8
lea ecx, [ebp - 0xf0]
mov byte [ebp - 4], 0xa
call fcn.00408fd0
test al, al
jne 0x45db52
push 0
push 0x62f1a8
lea ecx, [ebp - 0xf0]
call fcn.0040b130
push 7
push str.iconUrl
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 - 0xf0]
mov byte [ebp - 4], 0xc
push eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0xd0]
push ebx
push eax
call fcn.00469e00
add esp, 0x14
mov edx, dword [ebp - 0x44]
mov byte [ebp - 4], 0xe
cmp edx, 0x10
jb 0x45dbd3
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45dbc9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45eb8f
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 - 0xf0]
mov eax, edi
mov byte [ebp - 4], 0xf
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45dc06
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0xd0]
cmp dword [eax - 0xc], 0
jne 0x45dc3b
lea edx, [eax - 0x10]
mov byte [ebp - 4], 7
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45dc2d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xc4]
add edx, 0xfffffff0
jmp 0x45da08
push str.forecast
push dword [ebp - 0xc0]
call fcn.00468b70
add esp, 8
mov dword [ebp - 0xe0], eax
test eax, eax
jne 0x45dc63
mov edx, dword [ebp - 0xd0]
add edx, 0xfffffff0
jmp 0x45dc15
push 0
push eax
call fcn.00468b30
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x45dc7f
mov edx, dword [ebp - 0xd0]
add edx, 0xfffffff0
jmp 0x45dc15
call fcn.00407320
mov ecx, eax
test ecx, ecx
je 0x45eb94
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xf4], eax
push 0x62f1a8
lea ecx, [ebp - 0xf4]
mov byte [ebp - 4], 0x10
call fcn.00408fd0
test al, al
jne 0x45dcc6
push 0
push 0x62f1a8
lea ecx, [ebp - 0xf4]
call fcn.0040b130
push 9
push str.condition
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x11
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
call fcn.004080e0
push 0xfde9
lea eax, [ebp - 0xf4]
mov byte [ebp - 4], 0x12
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0xd8]
push ebx
push eax
call fcn.00469e00
add esp, 0x14
mov edx, dword [ebp - 0x5c]
mov byte [ebp - 4], 0x14
cmp edx, 0x10
jb 0x45dd47
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45dd3d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45eb9e
push edx
push ecx
call fcn.004f9a35
add esp, 8
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
mov edx, dword [ebp - 0xf4]
mov eax, edi
mov byte [ebp - 4], 0x15
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45dd7a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0xd8]
cmp dword [eax - 0xc], 0
jne 0x45ddaf
lea edx, [eax - 0x10]
mov byte [ebp - 4], 0xf
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45dda1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xd0]
add edx, 0xfffffff0
jmp 0x45dc15
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], 0x16
push eax
push ebx
call fcn.00469cd0
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov dword [ebp - 0xc8], eax
mov byte [ebp - 4], 0x15
cmp edx, 0x10
jb 0x45de21
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45de17
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45eba3
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], 0x17
push eax
push ebx
call fcn.00469cd0
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov dword [ebp - 0x10c], eax
mov byte [ebp - 4], 0x15
cmp edx, 0x10
jb 0x45de93
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45de89
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45eba8
push edx
push ecx
call fcn.004f9a35
add esp, 8
call fcn.00407320
mov ecx, eax
test ecx, ecx
je 0x45ebad
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xf8], eax
push 0x62f1a8
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 0x18
call fcn.00408fd0
test al, al
jne 0x45deda
push 0
push 0x62f1a8
lea ecx, [ebp - 0xf8]
call fcn.0040b130
push 7
push str.iconUrl
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0x19
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0xf
mov byte [ebp - 0x88], 0
call fcn.004080e0
push 0xfde9
lea eax, [ebp - 0xf8]
mov byte [ebp - 4], 0x1a
push eax
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0xdc]
push ebx
push eax
call fcn.00469e00
add esp, 0x14
mov edx, dword [ebp - 0x74]
mov byte [ebp - 4], 0x1c
cmp edx, 0x10
jb 0x45df67
mov ecx, dword [ebp - 0x88]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45df5d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45ebb7
push edx
push ecx
call fcn.004f9a35
add esp, 8
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0xf
mov byte [ebp - 0x88], 0
mov edx, dword [ebp - 0xf8]
mov eax, edi
mov byte [ebp - 4], 0x1d
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45df9d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0xdc]
cmp dword [eax - 0xc], 0
jne 0x45dfd2
lea edx, [eax - 0x10]
mov byte [ebp - 4], 0x15
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45dfc4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xd8]
add edx, 0xfffffff0
jmp 0x45dd89
push 1
push dword [ebp - 0xe0]
call fcn.00468b30
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x45dff3
mov edx, dword [ebp - 0xdc]
add edx, 0xfffffff0
jmp 0x45dfac
call fcn.00407320
mov ecx, eax
test ecx, ecx
je 0x45ebbc
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xfc], eax
push 0x62f1a8
lea ecx, [ebp - 0xfc]
mov byte [ebp - 4], 0x1e
call fcn.00408fd0
test al, al
jne 0x45e03a
push 0
push 0x62f1a8
lea ecx, [ebp - 0xfc]
call fcn.0040b130
push 9
push str.condition
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x1f
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0xf
mov byte [ebp - 0xa0], 0
call fcn.004080e0
push 0xfde9
lea eax, [ebp - 0xfc]
mov byte [ebp - 4], 0x20
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x100]
push ebx
push eax
call fcn.00469e00
add esp, 0x14
mov edx, dword [ebp - 0x8c]
mov byte [ebp - 4], 0x22
cmp edx, 0x10
jb 0x45e0d0
mov ecx, dword [ebp - 0xa0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45e0c6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45ebc6
push edx
push ecx
call fcn.004f9a35
add esp, 8
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0xf
mov byte [ebp - 0xa0], 0
mov edx, dword [ebp - 0xfc]
mov eax, edi
mov byte [ebp - 4], 0x23
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45e10c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x100]
cmp dword [eax - 0xc], 0
jne 0x45e141
lea edx, [eax - 0x10]
mov byte [ebp - 4], 0x1d
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45e133
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xdc]
add edx, 0xfffffff0
jmp 0x45dfac
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], 0x24
push eax
push ebx
call fcn.00469cd0
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov dword [ebp - 0xcc], eax
mov byte [ebp - 4], 0x23
cmp edx, 0x10
jb 0x45e1b3
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45e1a9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45ebcb
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], 0x25
push eax
push ebx
call fcn.00469cd0
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov dword [ebp - 0xe8], eax
mov byte [ebp - 4], 0x23
cmp edx, 0x10
jb 0x45e225
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45e21b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45ebd0
push edx
push ecx
call fcn.004f9a35
add esp, 8
call fcn.00407320
mov ecx, eax
test ecx, ecx
je 0x45ebd5
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xe0], eax
push 0x62f1a8
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], 0x26
call fcn.00408fd0
test al, al
jne 0x45e26c
push 0
push 0x62f1a8
lea ecx, [ebp - 0xe0]
call fcn.0040b130
push 7
push str.iconUrl
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0x27
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 0xf
mov byte [ebp - 0xb8], 0
call fcn.004080e0
push 0xfde9
lea eax, [ebp - 0xe0]
mov byte [ebp - 4], 0x28
push eax
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0x104]
push ebx
push eax
call fcn.00469e00
add esp, 0x14
mov edx, dword [ebp - 0xa4]
mov byte [ebp - 4], 0x2a
cmp edx, 0x10
jb 0x45e302
mov ecx, dword [ebp - 0xb8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45e2f8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45ebdf
push edx
push ecx
call fcn.004f9a35
add esp, 8
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 0xf
mov byte [ebp - 0xb8], 0
mov edx, dword [ebp - 0xe0]
mov eax, edi
mov byte [ebp - 4], 0x2b
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45e33e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x104]
cmp dword [eax - 0xc], 0
jne 0x45e373
lea edx, [eax - 0x10]
mov byte [ebp - 4], 0x23
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45e365
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x100]
add edx, 0xfffffff0
jmp 0x45e11b
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], 0x2c
push eax
push dword [ebp - 0xc0]
call fcn.00469cd0
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov byte [ebp - 4], 0x2b
mov ebx, eax
cmp edx, 0x10
jb 0x45e3e6
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45e3dc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45ebe4
push edx
push ecx
call fcn.004f9a35
add esp, 8
cmp ebx, 0xffffffff
je 0x45e403
mov eax, dword [ebp - 0xbc]
push ebx
add eax, 8
push 0x62f094
push eax
call fcn.00407230
add esp, 0xc
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xc4]
add ecx, 0x2c
mov dword [ebp - 0xe4], ecx
mov ebx, dword [ecx]
lea edx, [eax - 0x10]
sub ebx, 0x10
cmp edx, ebx
je 0x45e478
cmp dword [ebx + 0xc], 0
jl 0x45e46f
mov ecx, dword [edx]
cmp ecx, dword [ebx]
jne 0x45e469
push edx
call fcn.00407060
mov dword [ebp - 0xe4], eax
add esp, 4
mov ecx, edi
lea eax, [ebx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x45e455
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xe4]
add eax, 0x10
mov dword [ecx + 0x2c], eax
jmp 0x45e478
mov ecx, dword [ebp - 0xe4]
push dword [eax - 0xc]
push eax
call fcn.0040b130
push dword [ebp - 0x108]
mov eax, dword [ebp - 0xbc]
push dword [ebp - 0xd4]
add eax, 0x30
push str._d_d
push eax
call fcn.00407230
mov edx, dword [ebp - 0xbc]
add esp, 0x10
mov eax, dword [ebp - 0xd0]
mov ebx, dword [edx + 0x34]
lea ecx, [eax - 0x10]
sub ebx, 0x10
mov dword [ebp - 0xd4], ecx
cmp ecx, ebx
je 0x45e510
cmp dword [ebx + 0xc], 0
jl 0x45e504
mov ecx, dword [ecx]
cmp ecx, dword [ebx]
jne 0x45e504
push dword [ebp - 0xd4]
call fcn.00407060
mov dword [ebp - 0xd4], eax
add esp, 4
mov ecx, edi
lea eax, [ebx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x45e4f0
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xd4]
add eax, 0x10
mov dword [ecx + 0x34], eax
jmp 0x45e510
push dword [eax - 0xc]
lea ecx, [edx + 0x34]
push eax
call fcn.0040b130
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xd8]
mov ebx, dword [edx + 0x38]
lea ecx, [eax - 0x10]
sub ebx, 0x10
mov dword [ebp - 0xd4], ecx
cmp ecx, ebx
je 0x45e585
cmp dword [ebx + 0xc], 0
jl 0x45e579
mov ecx, dword [ecx]
cmp ecx, dword [ebx]
jne 0x45e579
push dword [ebp - 0xd4]
call fcn.00407060
mov dword [ebp - 0xd4], eax
add esp, 4
mov ecx, edi
lea eax, [ebx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x45e565
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xd4]
add eax, 0x10
mov dword [ecx + 0x38], eax
jmp 0x45e585
push dword [eax - 0xc]
lea ecx, [edx + 0x38]
push eax
call fcn.0040b130
push dword [ebp - 0x10c]
mov eax, dword [ebp - 0xbc]
push dword [ebp - 0xc8]
add eax, 0x3c
push str._d_d
push eax
call fcn.00407230
mov edx, dword [ebp - 0xbc]
add esp, 0x10
mov eax, dword [ebp - 0xdc]
mov ebx, dword [edx + 0x40]
lea ecx, [eax - 0x10]
sub ebx, 0x10
mov dword [ebp - 0xc8], ecx
cmp ecx, ebx
je 0x45e61d
cmp dword [ebx + 0xc], 0
jl 0x45e611
mov ecx, dword [ecx]
cmp ecx, dword [ebx]
jne 0x45e611
push dword [ebp - 0xc8]
call fcn.00407060
mov dword [ebp - 0xc8], eax
add esp, 4
mov ecx, edi
lea eax, [ebx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x45e5fd
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xc8]
add eax, 0x10
mov dword [ecx + 0x40], eax
jmp 0x45e61d
push dword [eax - 0xc]
lea ecx, [edx + 0x40]
push eax
call fcn.0040b130
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0x100]
mov ebx, dword [edx + 0x44]
lea ecx, [eax - 0x10]
sub ebx, 0x10
mov dword [ebp - 0xc8], ecx
cmp ecx, ebx
je 0x45e692
cmp dword [ebx + 0xc], 0
jl 0x45e686
mov ecx, dword [ecx]
cmp ecx, dword [ebx]
jne 0x45e686
push dword [ebp - 0xc8]
call fcn.00407060
mov dword [ebp - 0xc8], eax
add esp, 4
mov ecx, edi
lea eax, [ebx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x45e672
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xc8]
add eax, 0x10
mov dword [ecx + 0x44], eax
jmp 0x45e692
push dword [eax - 0xc]
lea ecx, [edx + 0x44]
push eax
call fcn.0040b130
push dword [ebp - 0xe8]
mov eax, dword [ebp - 0xbc]
push dword [ebp - 0xcc]
add eax, 0x48
push str._d_d
push eax
call fcn.00407230
mov edx, dword [ebp - 0xbc]
add esp, 0x10
mov eax, dword [ebp - 0x104]
mov ebx, dword [edx + 0x4c]
lea ecx, [eax - 0x10]
sub ebx, 0x10
mov dword [ebp - 0xcc], ecx
cmp ecx, ebx
je 0x45e72a
cmp dword [ebx + 0xc], 0
jl 0x45e71e
mov ecx, dword [ecx]
cmp ecx, dword [ebx]
jne 0x45e71e
push dword [ebp - 0xcc]
call fcn.00407060
mov dword [ebp - 0xcc], eax
add esp, 4
mov ecx, edi
lea eax, [ebx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x45e70a
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xcc]
add eax, 0x10
mov dword [ecx + 0x4c], eax
jmp 0x45e72a
push dword [eax - 0xc]
lea ecx, [edx + 0x4c]
push eax
call fcn.0040b130
push str.addr
push dword [ebp - 0xc0]
mov dword [ebp - 0xe4], 1
call fcn.00468b70
mov ebx, eax
add esp, 8
mov dword [ebp - 0xc8], ebx
test ebx, ebx
je 0x45ea76
call fcn.00407320
mov ecx, eax
test ecx, ecx
je 0x45ebe9
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xc0], eax
push 0x62f1a8
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0x2d
call fcn.00408fd0
test al, al
jne 0x45e79e
push 0
push 0x62f1a8
lea ecx, [ebp - 0xc0]
call fcn.0040b130
push 8
push str.province
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x2e
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004080e0
push 0xfde9
lea eax, [ebp - 0xc0]
mov byte [ebp - 4], 0x2f
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0xe8]
push ebx
push eax
call fcn.00469e00
add esp, 0x14
mov ecx, dword [eax]
mov eax, dword [ebp - 0xbc]
mov byte [ebp - 4], 0x30
lea edx, [ecx - 0x10]
mov ebx, dword [eax]
sub ebx, 0x10
cmp edx, ebx
je 0x45e856
cmp dword [ebx + 0xc], 0
jl 0x45e843
mov eax, dword [edx]
cmp eax, dword [ebx]
jne 0x45e843
push edx
call fcn.00407060
add esp, 4
mov dword [ebp - 0xcc], eax
mov ecx, edi
lea edx, [ebx + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45e836
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0xcc]
mov ebx, dword [ebp - 0xbc]
add eax, 0x10
mov dword [ebx], eax
jmp 0x45e858
push dword [ecx - 0xc]
mov ebx, dword [ebp - 0xbc]
push ecx
mov ecx, ebx
call fcn.0040b130
jmp 0x45e858
mov ebx, eax
mov edx, dword [ebp - 0xe8]
mov eax, edi
mov byte [ebp - 4], 0x2f
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45e879
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x2e
cmp edx, 0x10
jb 0x45e8b1
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45e8a7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45ebf3
push edx
push ecx
call fcn.004f9a35
add esp, 8
mov edx, dword [ebp - 0xc0]
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], 0x2b
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45e8e4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00407320
mov ecx, eax
test ecx, ecx
je 0x45ebf8
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xc0], eax
push 0x62f1a8
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0x31
call fcn.00408fd0
test al, al
jne 0x45e92b
push 0
push 0x62f1a8
lea ecx, [ebp - 0xc0]
call fcn.0040b130
push 4
push str.city
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x32
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004080e0
push 0xfde9
lea eax, [ebp - 0xc0]
mov byte [ebp - 4], 0x33
push eax
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0xc8]
lea eax, [ebp - 0xe8]
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], 0x34
lea eax, [ecx - 0x10]
mov dword [ebp - 0xcc], eax
cmp eax, ebx
je 0x45e9ea
cmp dword [ebx + 0xc], 0
jl 0x45e9df
mov eax, dword [ecx - 0x10]
cmp eax, dword [ebx]
jne 0x45e9df
push dword [ebp - 0xcc]
call fcn.00407060
add esp, 4
mov dword [ebp - 0xcc], eax
mov ecx, edi
lea edx, [ebx + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45e9d1
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xbc]
add eax, 0x10
mov dword [ecx + 4], eax
jmp 0x45e9ea
push dword [ecx - 0xc]
push ecx
mov ecx, edx
call fcn.0040b130
mov edx, dword [ebp - 0xe8]
mov eax, edi
mov byte [ebp - 4], 0x33
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45ea0b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x32
cmp edx, 0x10
jb 0x45ea43
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45ea39
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45ec02
push edx
push ecx
call fcn.004f9a35
add esp, 8
mov edx, dword [ebp - 0xc0]
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], 0x2b
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45ea76
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x104]
mov eax, edi
mov byte [ebp - 4], 0x23
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45ea97
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x100]
mov eax, edi
mov byte [ebp - 4], 0x1d
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45eab8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xdc]
mov eax, edi
mov byte [ebp - 4], 0x15
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45ead9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xd8]
mov eax, edi
mov byte [ebp - 4], 0xf
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45eafa
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xd0]
mov eax, edi
mov byte [ebp - 4], 7
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45eb1b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0xc4]
mov byte [ebp - 4], 0
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], edi
dec edi
test edi, edi
jg 0x45eb3a
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 - 0xe4]
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
push 0x80004005
call fcn.00407030
call fcn.005e6a79
call fcn.005e6a79
call fcn.005e6a79
push 0x80004005
call fcn.00407030
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