Function at 0x45edd0
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e05d7
mov eax, dword fs:[0]
push eax
sub esp, 0xc0
mov eax, dword [0x51cbc0]
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 edi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x5c], 0
cmp byte [edi + 8], 7
jne 0x45f784
push 0x4f7452
push 0x4f7450
mov ecx, edi
call fcn.0047a9e0
test eax, eax
je 0x45f784
push 0x4f7452
push 0x4f7450
mov ecx, edi
call fcn.0047a9e0
test eax, eax
jne 0x45ee48
mov eax, dword [0x521438]
mov ecx, eax
call fcn.0047b630
test al, al
je 0x45f784
push 0x4f7450
mov ecx, edi
call fcn.0043f790
mov ecx, eax
call fcn.00476210
mov esi, eax
test esi, esi
je 0x45f784
call fcn.0040b000
mov ecx, eax
test ecx, ecx
je 0x45f7a2
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x78], eax
push esi
lea eax, [ebp - 0x78]
mov dword [ebp - 4], 0
push 0x4f7818
push eax
call fcn.00409d30
mov esi, dword [ebp - 0x78]
add esp, 0xc
mov ecx, esi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45eeb0
sub ecx, edx
sar ecx, 1
push ecx
push esi
mov ecx, ebx
call fcn.00417870
cmp byte [edi + 8], 7
jne 0x45ef1d
push 0x4f8484
push str.birthday
mov ecx, edi
call fcn.0047a9e0
test eax, eax
je 0x45ef1d
push 0x4f8484
push str.birthday
mov ecx, edi
call fcn.0047a9e0
test eax, eax
jne 0x45eefd
mov eax, dword [0x521438]
mov ecx, eax
call fcn.0047b630
test al, al
je 0x45ef1d
push str.birthday
mov ecx, edi
call fcn.0043f790
mov ecx, eax
call fcn.00476210
jmp 0x45ef1f
xor eax, eax
push str.last_name
mov dword [ebx + 0x20], eax
lea eax, [ebp - 0x40]
push edi
push eax
mov dword [ebx + 0x24], 0
call fcn.004508c0
lea ecx, [ebx + 0x58]
mov dword [ebp - 0x5c], eax
add esp, 0xc
cmp ecx, eax
je 0x45ef83
call fcn.00406fe0
mov edx, dword [ebp - 0x5c]
mov ecx, dword [edx]
mov dword [ebx + 0x58], ecx
mov eax, dword [edx + 4]
mov dword [ebx + 0x5c], eax
mov eax, dword [edx + 8]
mov dword [ebx + 0x60], eax
mov eax, dword [edx + 0xc]
mov dword [ebx + 0x64], eax
mov eax, dword [edx + 0x10]
mov dword [ebx + 0x68], eax
mov eax, dword [edx + 0x14]
mov dword [ebx + 0x6c], eax
xor eax, eax
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 7
mov word [edx], ax
lea ecx, [ebp - 0x40]
call fcn.00406fe0
push str.first_name
lea eax, [ebp - 0x40]
push edi
push eax
call fcn.004508c0
lea ecx, [ebx + 0x40]
mov dword [ebp - 0x5c], eax
add esp, 0xc
cmp ecx, eax
je 0x45efe5
call fcn.00406fe0
mov edx, dword [ebp - 0x5c]
mov ecx, dword [edx]
mov dword [ebx + 0x40], ecx
mov eax, dword [edx + 4]
mov dword [ebx + 0x44], eax
mov eax, dword [edx + 8]
mov dword [ebx + 0x48], eax
mov eax, dword [edx + 0xc]
mov dword [ebx + 0x4c], eax
mov eax, dword [edx + 0x10]
mov dword [ebx + 0x50], eax
mov eax, dword [edx + 0x14]
mov dword [ebx + 0x54], eax
xor eax, eax
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 7
mov word [edx], ax
lea ecx, [ebp - 0x40]
call fcn.00406fe0
push str.language
lea eax, [ebp - 0x40]
push edi
push eax
call fcn.004508c0
lea ecx, [ebx + 0x70]
mov dword [ebp - 0x5c], eax
add esp, 0xc
cmp ecx, eax
je 0x45f04d
call fcn.00406fe0
mov edx, dword [ebp - 0x5c]
mov ecx, dword [edx]
mov dword [ebx + 0x70], ecx
mov eax, dword [edx + 4]
mov dword [ebx + 0x74], eax
mov eax, dword [edx + 8]
mov dword [ebx + 0x78], eax
mov eax, dword [edx + 0xc]
mov dword [ebx + 0x7c], eax
mov eax, dword [edx + 0x10]
mov dword [ebx + 0x80], eax
mov eax, dword [edx + 0x14]
mov dword [ebx + 0x84], eax
xor eax, eax
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 7
mov word [edx], ax
lea ecx, [ebp - 0x40]
call fcn.00406fe0
push str.country
lea eax, [ebp - 0x40]
push edi
push eax
call fcn.004508c0
lea ecx, [ebx + 0x100]
mov dword [ebp - 0x5c], eax
add esp, 0xc
cmp ecx, eax
je 0x45f0c4
call fcn.00406fe0
mov edx, dword [ebp - 0x5c]
mov ecx, dword [edx]
mov dword [ebx + 0x100], ecx
mov eax, dword [edx + 4]
mov dword [ebx + 0x104], eax
mov eax, dword [edx + 8]
mov dword [ebx + 0x108], eax
mov eax, dword [edx + 0xc]
mov dword [ebx + 0x10c], eax
mov eax, dword [edx + 0x10]
mov dword [ebx + 0x110], eax
mov eax, dword [edx + 0x14]
mov dword [ebx + 0x114], eax
xor eax, eax
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 7
mov word [edx], ax
lea ecx, [ebp - 0x40]
call fcn.00406fe0
push str.country_code
lea eax, [ebp - 0x40]
push edi
push eax
call fcn.004508c0
lea ecx, [ebx + 0xe8]
mov dword [ebp - 0x5c], eax
add esp, 0xc
cmp ecx, eax
je 0x45f13b
call fcn.00406fe0
mov edx, dword [ebp - 0x5c]
mov ecx, dword [edx]
mov dword [ebx + 0xe8], ecx
mov eax, dword [edx + 4]
mov dword [ebx + 0xec], eax
mov eax, dword [edx + 8]
mov dword [ebx + 0xf0], eax
mov eax, dword [edx + 0xc]
mov dword [ebx + 0xf4], eax
mov eax, dword [edx + 0x10]
mov dword [ebx + 0xf8], eax
mov eax, dword [edx + 0x14]
mov dword [ebx + 0xfc], eax
xor eax, eax
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 7
mov word [edx], ax
lea ecx, [ebp - 0x40]
call fcn.00406fe0
push str.gender
lea eax, [ebp - 0x40]
push edi
push eax
call fcn.004508c0
lea ecx, [ebx + 0xb8]
mov dword [ebp - 0x5c], eax
add esp, 0xc
cmp ecx, eax
je 0x45f1b2
call fcn.00406fe0
mov edx, dword [ebp - 0x5c]
mov ecx, dword [edx]
mov dword [ebx + 0xb8], ecx
mov eax, dword [edx + 4]
mov dword [ebx + 0xbc], eax
mov eax, dword [edx + 8]
mov dword [ebx + 0xc0], eax
mov eax, dword [edx + 0xc]
mov dword [ebx + 0xc4], eax
mov eax, dword [edx + 0x10]
mov dword [ebx + 0xc8], eax
mov eax, dword [edx + 0x14]
mov dword [ebx + 0xcc], eax
xor eax, eax
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 7
mov word [edx], ax
lea ecx, [ebp - 0x40]
call fcn.00406fe0
push str.email
lea eax, [ebp - 0x40]
push edi
push eax
call fcn.004508c0
lea ecx, [ebx + 0x118]
mov dword [ebp - 0x5c], eax
add esp, 0xc
cmp ecx, eax
je 0x45f229
call fcn.00406fe0
mov edx, dword [ebp - 0x5c]
mov ecx, dword [edx]
mov dword [ebx + 0x118], ecx
mov eax, dword [edx + 4]
mov dword [ebx + 0x11c], eax
mov eax, dword [edx + 8]
mov dword [ebx + 0x120], eax
mov eax, dword [edx + 0xc]
mov dword [ebx + 0x124], eax
mov eax, dword [edx + 0x10]
mov dword [ebx + 0x128], eax
mov eax, dword [edx + 0x14]
mov dword [ebx + 0x12c], eax
xor eax, eax
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 7
mov word [edx], ax
lea ecx, [ebp - 0x40]
call fcn.00406fe0
xor eax, eax
mov dword [ebp - 0x30], 0
push eax
push 0x4ef6f8
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
call fcn.00417870
lea eax, [ebp - 0x70]
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x5c], eax
push 1
mov byte [ebp - 4], 2
call fcn.00496600
mov dword [ebp - 0x64], eax
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 3
push eax
call fcn.00437040
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x68]
push eax
call fcn.00405210
add esp, 0xc
mov dword [ebp - 0x6c], eax
push 1
push 0x4f84fe
push str._u0001_u0019u0080_u00A0_
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0xcc]
call fcn.004372c0
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 5
call fcn.0046f9f0
mov ecx, eax
mov dword [ebp - 0x5c], ecx
test ecx, ecx
je 0x45f2c8
lock inc dword [ecx + 0x20]
mov ecx, dword [ebp - 0x74]
test ecx, ecx
je 0x45f2e6
or eax, 0xffffffff
lock xadd dword [ecx + 0x20], eax
jne 0x45f2e6
push 0
push dword [ebp - 0x74]
call fcn.0046ffb0
add esp, 8
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x74], eax
mov byte [ebp - 4], 4
test ecx, ecx
je 0x45f352
mov eax, dword [ebp - 0xb0]
sub eax, ecx
sar eax, 2
lea edx, [eax*4]
mov eax, ecx
cmp edx, 0x1000
jb 0x45f32a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45f7ac
push edx
push ecx
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 8
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb0], 0
push str.nick_name
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 6
push edi
push eax
call fcn.004508c0
add esp, 0xc
mov ecx, eax
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov edx, ecx
mov word [ebp - 0x28], ax
cmp dword [ecx + 0x14], 8
mov byte [ebp - 4], 8
mov dword [ebp - 0x5c], 1
jb 0x45f393
mov edx, dword [ecx]
mov eax, dword [ecx + 0x10]
lea eax, [edx + eax*2]
jb 0x45f39d
mov ecx, dword [ecx]
push 0
lea edx, [ebp - 0x40]
push edx
lea edx, [ebp - 0x74]
push edx
push eax
push ecx
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.00434790
lea ecx, [ebx + 0xa0]
add esp, 0x1c
lea eax, [ebp - 0x28]
cmp ecx, eax
je 0x45f408
call fcn.00406fe0
mov eax, dword [ebp - 0x28]
lea ecx, [ebx + 0xa0]
mov dword [ecx], eax
mov eax, dword [ebp - 0x24]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x20]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x1c]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0x18]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x14]
mov dword [ecx + 0x14], eax
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
lea ecx, [ebp - 0x28]
call fcn.00406fe0
lea ecx, [ebp - 0x58]
call fcn.00406fe0
mov ecx, dword [ebp - 0x74]
test ecx, ecx
je 0x45f436
or eax, 0xffffffff
lock xadd dword [ecx + 0x20], eax
jne 0x45f436
push 0
push dword [ebp - 0x74]
call fcn.0046ffb0
add esp, 8
mov dword [ebp - 0x74], 0
mov ecx, dword [ebp - 0x64]
mov byte [ebp - 4], 9
test ecx, ecx
je 0x45f459
mov eax, dword [ecx]
call dword [eax + 8]
test eax, eax
je 0x45f459
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0
call fcn.00406fe0
push str.phone
lea eax, [ebp - 0x58]
push edi
push eax
call fcn.004508c0
lea ecx, [ebx + 0xd0]
mov dword [ebp - 0x5c], eax
add esp, 0xc
cmp ecx, eax
je 0x45f4d4
call fcn.00406fe0
mov edx, dword [ebp - 0x5c]
mov ecx, dword [edx]
mov dword [ebx + 0xd0], ecx
mov eax, dword [edx + 4]
mov dword [ebx + 0xd4], eax
mov eax, dword [edx + 8]
mov dword [ebx + 0xd8], eax
mov eax, dword [edx + 0xc]
mov dword [ebx + 0xdc], eax
mov eax, dword [edx + 0x10]
mov dword [ebx + 0xe0], eax
mov eax, dword [edx + 0x14]
mov dword [ebx + 0xe4], eax
xor eax, eax
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 7
mov word [edx], ax
lea ecx, [ebp - 0x58]
call fcn.00406fe0
push str.remote_addr
lea eax, [ebp - 0x58]
push edi
push eax
call fcn.004508c0
lea ecx, [ebx + 0x88]
mov dword [ebp - 0x5c], eax
add esp, 0xc
cmp ecx, eax
je 0x45f54b
call fcn.00406fe0
mov edx, dword [ebp - 0x5c]
mov ecx, dword [edx]
mov dword [ebx + 0x88], ecx
mov eax, dword [edx + 4]
mov dword [ebx + 0x8c], eax
mov eax, dword [edx + 8]
mov dword [ebx + 0x90], eax
mov eax, dword [edx + 0xc]
mov dword [ebx + 0x94], eax
mov eax, dword [edx + 0x10]
mov dword [ebx + 0x98], eax
mov eax, dword [edx + 0x14]
mov dword [ebx + 0x9c], eax
xor eax, eax
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 7
mov word [edx], ax
lea ecx, [ebp - 0x58]
call fcn.00406fe0
cmp byte [edi + 8], 7
jne 0x45f5b0
push 0x4f852a
push str.photo_hash
mov ecx, edi
call fcn.0047a9e0
test eax, eax
je 0x45f5b0
push 0x4f852a
push str.photo_hash
mov ecx, edi
call fcn.0047a9e0
test eax, eax
jne 0x45f588
mov eax, dword [0x521438]
cmp byte [eax + 8], 4
jne 0x45f5b0
lea eax, [ebp - 0x28]
mov ecx, edi
push eax
push str.photo_hash
call fcn.0043f790
mov ecx, eax
call fcn.004765f0
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x60], edx
jmp 0x45f5c0
mov dword [ebp - 0x60], 0
mov eax, 0xf
mov byte [ebp - 0x28], 0
lea ecx, [ebx + 0x130]
mov dword [ebp - 0x5c], eax
lea edx, [ebp - 0x28]
cmp ecx, edx
je 0x45f600
call fcn.00406f90
mov eax, dword [ebp - 0x28]
lea ecx, [ebx + 0x130]
mov dword [ecx], eax
mov eax, dword [ebp - 0x24]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x20]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x1c]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0x60]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x5c]
mov dword [ecx + 0x14], eax
jmp 0x45f633
cmp eax, 0x10
jb 0x45f633
mov ecx, dword [ebp - 0x28]
lea edx, [eax + 1]
mov eax, ecx
cmp edx, 0x1000
jb 0x45f629
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45f7b1
push edx
push ecx
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 8
cmp byte [edi + 8], 7
jne 0x45f688
push 0x4f8538
push str.total_points
mov ecx, edi
call fcn.0047a9e0
test eax, eax
je 0x45f688
push 0x4f8538
push str.total_points
mov ecx, edi
call fcn.0047a9e0
test eax, eax
jne 0x45f668
mov eax, dword [0x521438]
mov ecx, eax
call fcn.0047b630
test al, al
je 0x45f688
push str.total_points
mov ecx, edi
call fcn.0043f790
mov ecx, eax
call fcn.00476210
jmp 0x45f68a
xor eax, eax
push str.google_name
mov dword [ebx + 0x174], eax
lea eax, [ebp - 0x58]
push edi
push eax
call fcn.004508c0
lea ecx, [ebx + 0x148]
mov dword [ebp - 0x5c], eax
add esp, 0xc
cmp ecx, eax
je 0x45f6ff
call fcn.00406fe0
mov edx, dword [ebp - 0x5c]
mov ecx, dword [edx]
mov dword [ebx + 0x148], ecx
mov eax, dword [edx + 4]
mov dword [ebx + 0x14c], eax
mov eax, dword [edx + 8]
mov dword [ebx + 0x150], eax
mov eax, dword [edx + 0xc]
mov dword [ebx + 0x154], eax
mov eax, dword [edx + 0x10]
mov dword [ebx + 0x158], eax
mov eax, dword [edx + 0x14]
mov dword [ebx + 0x15c], eax
xor eax, eax
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 7
mov word [edx], ax
lea ecx, [ebp - 0x58]
call fcn.00406fe0
cmp byte [edi + 8], 7
jne 0x45f757
push 0x4f8554
push str.has_password
mov ecx, edi
call fcn.0047a9e0
test eax, eax
je 0x45f757
push 0x4f8554
push str.has_password
mov ecx, edi
call fcn.0047a9e0
test eax, eax
jne 0x45f73c
mov eax, dword [0x521438]
cmp byte [eax + 8], 5
jne 0x45f757
push str.has_password
mov ecx, edi
call fcn.0043f790
mov ecx, eax
call fcn.00475dc0
jmp 0x45f759
mov al, 1
mov byte [ebx + 0x160], al
add esi, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
mov eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x45f780
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov al, 1
jmp 0x45f786
xor al, al
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.004d55dc
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00409110
call fcn.004c98d0
call fcn.004c98d0
int3