Function at 0x429e00
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47ee45
mov eax, dword fs:[0]
push eax
sub esp, 0x30
push ebx
push esi
push edi
mov eax, dword [0x4a5018]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x14], esi
mov edi, dword [esi + 0x1c]
lea eax, [esi + 0x1c]
mov dword [ebp - 0x1c], eax
cmp dword [edi - 0xc], 0
jne 0x42a40d
push 0x18
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
call fcn.004551d2
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x2c], eax
mov dword [ebp - 4], 0
call fcn.00402880
mov ecx, eax
test ecx, ecx
je 0x42a46e
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
push str.country
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
call fcn.004067d0
test al, al
jne 0x429eae
push 7
push str.country
lea ecx, [ebp - 0x18]
call fcn.004069d0
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x2c]
call fcn.004214b0
mov edx, dword [esi]
mov ebx, eax
or esi, 0xffffffff
mov edi, dword [ebx]
lea ecx, [edx - 0x10]
sub edi, 0x10
cmp ecx, edi
je 0x429f10
cmp dword [edi + 0xc], 0
jl 0x429f05
mov eax, dword [ecx]
cmp eax, dword [edi]
jne 0x429f05
call fcn.00406910
mov dword [ebp - 0x20], eax
lea edx, [edi + 0xc]
mov ecx, esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x429efe
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x20]
add eax, 0x10
mov dword [ebx], eax
jmp 0x429f10
push dword [edx - 0xc]
mov ecx, ebx
push edx
call fcn.004069d0
mov byte [ebp - 4], 0
mov eax, esi
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x429f2e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00402880
mov ecx, eax
test ecx, ecx
je 0x42a478
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
push str.province
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 3
call fcn.004067d0
test al, al
jne 0x429f6c
push 8
push str.province
lea ecx, [ebp - 0x18]
call fcn.004069d0
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x2c]
call fcn.004214b0
mov edx, dword [ebp - 0x14]
mov ebx, eax
mov edx, dword [edx + 4]
mov edi, dword [ebx]
sub edi, 0x10
lea ecx, [edx - 0x10]
cmp ecx, edi
je 0x429fcf
cmp dword [edi + 0xc], 0
jl 0x429fc4
mov eax, dword [ecx]
cmp eax, dword [edi]
jne 0x429fc4
call fcn.00406910
mov dword [ebp - 0x20], eax
lea edx, [edi + 0xc]
mov ecx, esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x429fbd
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x20]
add eax, 0x10
mov dword [ebx], eax
jmp 0x429fcf
push dword [edx - 0xc]
mov ecx, ebx
push edx
call fcn.004069d0
mov byte [ebp - 4], 0
mov eax, esi
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x429fed
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00402880
mov ecx, eax
test ecx, ecx
je 0x42a482
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
push str.city
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 5
call fcn.004067d0
test al, al
jne 0x42a02b
push 4
push str.city
lea ecx, [ebp - 0x18]
call fcn.004069d0
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp - 0x2c]
call fcn.004214b0
mov ebx, eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 8]
mov edi, dword [ebx]
sub edi, 0x10
lea ecx, [edx - 0x10]
cmp ecx, edi
je 0x42a08e
cmp dword [edi + 0xc], 0
jl 0x42a083
mov eax, dword [ecx]
cmp eax, dword [edi]
jne 0x42a083
call fcn.00406910
mov dword [ebp - 0x20], eax
lea edx, [edi + 0xc]
mov ecx, esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42a07c
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x20]
add eax, 0x10
mov dword [ebx], eax
jmp 0x42a08e
push dword [edx - 0xc]
mov ecx, ebx
push edx
call fcn.004069d0
mov byte [ebp - 4], 0
mov eax, esi
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x42a0ac
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00402880
mov ecx, eax
test ecx, ecx
je 0x42a48c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
push str.district
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 7
call fcn.004067d0
test al, al
jne 0x42a0ea
push 8
push str.district
lea ecx, [ebp - 0x18]
call fcn.004069d0
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp - 0x2c]
call fcn.004214b0
mov ebx, eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0xc]
mov edi, dword [ebx]
sub edi, 0x10
lea ecx, [edx - 0x10]
cmp ecx, edi
je 0x42a14d
cmp dword [edi + 0xc], 0
jl 0x42a142
mov eax, dword [ecx]
cmp eax, dword [edi]
jne 0x42a142
call fcn.00406910
mov dword [ebp - 0x20], eax
lea edx, [edi + 0xc]
mov ecx, esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42a13b
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x20]
add eax, 0x10
mov dword [ebx], eax
jmp 0x42a14d
push dword [edx - 0xc]
mov ecx, ebx
push edx
call fcn.004069d0
mov byte [ebp - 4], 0
mov eax, esi
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x42a16b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00402880
mov ecx, eax
test ecx, ecx
je 0x42a496
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
push 0x496a20
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 9
call fcn.004067d0
test al, al
jne 0x42a1a9
push 3
push 0x496a20
lea ecx, [ebp - 0x18]
call fcn.004069d0
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 0xa
push eax
lea ecx, [ebp - 0x2c]
call fcn.004214b0
mov ebx, eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x10]
mov edi, dword [ebx]
sub edi, 0x10
lea ecx, [edx - 0x10]
cmp ecx, edi
je 0x42a20c
cmp dword [edi + 0xc], 0
jl 0x42a201
mov eax, dword [ecx]
cmp eax, dword [edi]
jne 0x42a201
call fcn.00406910
mov dword [ebp - 0x20], eax
lea edx, [edi + 0xc]
mov ecx, esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42a1fa
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x20]
add eax, 0x10
mov dword [ebx], eax
jmp 0x42a20c
push dword [edx - 0xc]
mov ecx, ebx
push edx
call fcn.004069d0
mov byte [ebp - 4], 0
mov eax, esi
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x42a22a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00402880
mov ecx, eax
test ecx, ecx
je 0x42a4a0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
push str.type
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0xb
call fcn.004067d0
test al, al
jne 0x42a268
push 4
push str.type
lea ecx, [ebp - 0x18]
call fcn.004069d0
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [ebp - 0x2c]
call fcn.004214b0
mov ebx, eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x14]
mov edi, dword [ebx]
sub edi, 0x10
lea ecx, [edx - 0x10]
cmp ecx, edi
je 0x42a2cb
cmp dword [edi + 0xc], 0
jl 0x42a2c0
mov eax, dword [ecx]
cmp eax, dword [edi]
jne 0x42a2c0
call fcn.00406910
mov dword [ebp - 0x20], eax
lea edx, [edi + 0xc]
mov ecx, esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42a2b9
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x20]
add eax, 0x10
mov dword [ebx], eax
jmp 0x42a2cb
push dword [edx - 0xc]
mov ecx, ebx
push edx
call fcn.004069d0
mov byte [ebp - 4], 0
mov eax, esi
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x42a2e9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00402880
mov ecx, eax
test ecx, ecx
je 0x42a4aa
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
push str.desc
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0xd
call fcn.004067d0
test al, al
jne 0x42a327
push 4
push str.desc
lea ecx, [ebp - 0x18]
call fcn.004069d0
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp - 0x2c]
call fcn.004214b0
mov ecx, eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], ecx
mov edx, dword [eax + 0x18]
mov edi, dword [ecx]
sub edi, 0x10
lea eax, [edx - 0x10]
mov dword [ebp - 0x20], eax
cmp eax, edi
je 0x42a394
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x42a38b
mov eax, dword [eax]
cmp eax, dword [edi]
jne 0x42a38b
mov ecx, dword [ebp - 0x20]
call fcn.00406910
mov dword [ebp - 0x20], eax
mov ecx, esi
lock xadd dword [ebx], ecx
dec ecx
test ecx, ecx
jg 0x42a381
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
add eax, 0x10
mov dword [ecx], eax
jmp 0x42a394
push dword [edx - 0xc]
push edx
call fcn.004069d0
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x42a3b0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
and dword [ebp - 0x34], 0xfffffe00
mov dword [ebp - 0x30], 0
lea edx, [ebp - 0x3c]
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x2c]
call fcn.0042b480
mov edi, dword [ebp - 0x1c]
test eax, eax
je 0x42a3de
mov edx, edi
lea ecx, [ebp - 0x3c]
call fcn.0041c590
lea ecx, [ebp - 0x3c]
call fcn.0041a770
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x2c]
push dword [eax + 4]
lea eax, [ebp - 0x2c]
push eax
mov ecx, eax
call fcn.00421d20
push 0x18
push dword [ebp - 0x2c]
call fcn.00455202
mov edi, dword [edi]
add esp, 8
mov ecx, dword [edi - 0x10]
lea esi, [edi - 0x10]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
mov ecx, eax
lea eax, [esi + 0xc]
jl 0x42a42c
cmp ecx, dword [esi]
jne 0x42a42c
lock inc dword [eax]
jmp 0x42a452
mov eax, dword [ecx]
lea ebx, [esi + 4]
push 1
push dword [ebx]
call dword [eax]
mov esi, eax
test esi, esi
je 0x42a4b4
mov eax, dword [ebx]
lea ecx, [esi + 0x10]
mov dword [esi + 4], eax
mov edx, dword [ebx]
inc edx
push edx
push edi
call fcn.00406cc0
add esp, 8
mov eax, dword [ebp + 8]
lea ecx, [esi + 0x10]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x80004005
call fcn.00402980
push 0x80004005
call fcn.00402980
push 0x80004005
call fcn.00402980
push 0x80004005
call fcn.00402980
push 0x80004005
call fcn.00402980
push 0x80004005
call fcn.00402980
push 0x80004005
call fcn.00402980
call fcn.00405520
int3