Function at 0x40d2a0
Capabilities:
Get geographical location
Reference http user-agent string

Disassembly:
lea r12, [rsp - 0x18]
cmp r12, qword [r14 + 0x10]
jbe 0x40d910
sub rsp, 0x98
mov qword [rsp + 0x90], rbp
lea rbp, [rsp + 0x90]
mov qword [rsp + 0xa0], rax
test byte [rax], al
nop
lea rdx, [rax + 0x103c0]
add rbx, 0x3fffff
and rbx, 0xffffffffffc00000
mov qword [rsp + 0x20], rbx
mov ecx, 0x400000
lea rdi, [0x01158c50]
mov rax, rdx
call fcn.0040ede0
nop
test rax, rax
jne 0x40d317
mov rdx, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0x20]
jmp 0x40d5fc
mov rcx, qword [rsp + 0x20]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x60], rcx
mov rdx, rax
movabs rsi, 0x800000000000
add rsi, rax
shr rsi, 0x16
mov r8, qword [rsp + 0xa0]
jmp 0x40d36e
mov r9, qword [rsp + 0x58]
mov qword [rdx + r8*8], r9
mov r10, qword [rsp + 0x78]
xchg qword [r10], rax
inc r9
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x60]
mov r8, rsi
mov rsi, r9
mov rax, rdx
add rdx, rcx
movabs r9, 0x7fffffffffff
add rdx, r9
shr rdx, 0x16
cmp rsi, rdx
ja 0x40d556
mov rdx, rsi
shr rsi, 0x14
cmp rsi, 0x40
jae 0x40d5ba
mov qword [rsp + 0x58], rdx
mov r10, qword [r8 + rsi*8 + 0x10198]
lea rsi, [r8 + rsi*8]
lea rsi, [rsi + 0x10198]
test r10, r10
jne 0x40d410
mov qword [rsp + 0x80], rsi
mov eax, 0x800000
mov ebx, 8
xor ecx, ecx
call fcn.0040ea00
test rax, rax
je 0x40d5a9
mov rdx, qword [rsp + 0x80]
mov r10, rax
xchg qword [rdx], rax
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
mov r8, qword [rsp + 0xa0]
movabs r9, 0x7fffffffffff
test byte [r10], al
and rdx, 0xfffff
mov r11, qword [r10 + rdx*8]
lea rdx, [r10 + rdx*8]
test r11, r11
jne 0x40d598
mov qword [rsp + 0x78], rdx
lea rax, [r8 + 0x10398]
mov ebx, 0x210d0
mov ecx, 8
lea rdi, [0x01158cb8]
call fcn.0040ede0
test rax, rax
jne 0x40d471
mov eax, 0x210d0
mov ebx, 8
lea rcx, [0x01158cb8]
call fcn.0040ea00
test rax, rax
je 0x40d587
mov rsi, qword [rsp + 0xa0]
mov r8, qword [rsi + 0x103f0]
cmp qword [rsi + 0x103e8], r8
jne 0x40d526
mov qword [rsp + 0x30], rax
shl r8, 4
test r8, r8
jne 0x40d4a2
mov r8, qword [0x011544b0]
mov qword [rsp + 0x28], r8
mov rax, r8
mov ebx, 8
lea rcx, [0x01158cb8]
call fcn.0040ea00
nop dword [rax + rax]
test rax, rax
je 0x40d576
mov rsi, qword [rsp + 0xa0]
mov rbx, qword [rsi + 0x103e0]
mov r8, qword [rsi + 0x103e8]
mov qword [rsi + 0x103e0], rax
mov r9, qword [rsp + 0x28]
shr r9, 3
mov qword [rsi + 0x103f0], r9
mov rcx, qword [rsi + 0x103e8]
cmp rcx, r8
cmovg rcx, r8
mov rax, qword [rsi + 0x103e0]
cmp rax, rbx
je 0x40d521
shl rcx, 3
call fcn.004664e0
mov rsi, qword [rsp + 0xa0]
mov rax, qword [rsp + 0x30]
mov r8, qword [rsi + 0x103e8]
mov rdx, qword [rsi + 0x103f0]
lea rcx, [r8 + 1]
cmp rdx, rcx
jb 0x40d571
mov qword [rsi + 0x103e8], rcx
mov rdx, qword [rsi + 0x103e0]
cmp r8, rcx
jb 0x40d347
jmp 0x40d569
mov rbx, rcx
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
mov rax, r8
call fcn.00465b60
call fcn.00465be0
lea rax, [0x00ad281f]
mov ebx, 0x22
call fcn.00437b60
lea rax, [0x00ad8c86]
mov ebx, 0x2c
call fcn.00437b60
lea rax, [0x00ac9fa6]
mov ebx, 0x19
call fcn.00437b60
lea rax, [0x00ad61c3]
mov ebx, 0x27
call fcn.00437b60
mov rax, rsi
mov ecx, 0x40
call fcn.00465b80
mov r8, qword [rsi + 0x10]
mov qword [rdx + 0x103b8], r8
nop
mov r8, qword [rdx + 0x16be0]
sub r8, qword [rdx + 0x16bb0]
mov qword [rdx + 0x16be0], r8
mov r8, qword [rdx + 0x16bc8]
mov qword [rsi], r8
mov qword [rdx + 0x16bc8], rsi
mov rax, r11
mov rsi, qword [rdx + 0x103b8]
test rsi, rsi
je 0x40d6f9
mov qword [rsp + 0x50], rsi
mov rax, qword [rsi]
movzx r8d, byte [rsi + 8]
mov r9, rax
sub rax, rbx
test r8, r8
cmovne r9, rax
lea r8, [rbx + r9]
cmp r9, r8
jbe 0x40d63d
movabs r10, 0x7fffffffffff
xor eax, eax
jmp 0x40d694
movabs r10, 0x7fffffffffff
lea r11, [r10 + r8]
shr r11, 0x16
cmp r11, 0x4000000
jb 0x40d65c
xor eax, eax
jmp 0x40d694
mov qword [rsp + 0x40], r9
mov qword [rsp + 0x60], r8
mov rax, r9
call fcn.00419660
mov rdx, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x50]
mov r8, qword [rsp + 0x60]
mov r9, qword [rsp + 0x40]
movabs r10, 0x7fffffffffff
mov r11, rax
cmp rax, r9
je 0x40d6e5
nop dword [rax]
test r11, r11
je 0x40d5c7
mov qword [rsp + 0x88], r11
mov rax, r11
xor ecx, ecx
call fcn.00419520
mov rdx, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x50]
movabs r10, 0x7fffffffffff
mov r11, qword [rsp + 0x88]
nop
jmp 0x40d5c7
movzx r12d, byte [rsi + 8]
test r12, r12
cmovne r8, r9
mov qword [rsi], r8
mov rax, rbx
jmp 0x40d70b
movabs r10, 0x7fffffffffff
mov r11, rax
mov rax, rbx
xor ebx, ebx
test rbx, rbx
jne 0x40d7bd
mov rbx, rax
mov ecx, 0x400000
xor eax, eax
nop
call fcn.0040d940
test rax, rax
je 0x40d859
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x60], rbx
mov rcx, qword [rsp + 0xa0]
lea rax, [rcx + 0x16bb0]
mov qword [rsp + 0x70], rax
call fcn.0041a6a0
mov rcx, qword [rsp + 0x88]
mov qword [rax], rcx
mov byte [rax + 8], 1
mov rcx, qword [0x01126778]
mov qword [rax + 0x10], rcx
mov qword [0x01126778], rax
mov rax, qword [rsp + 0x70]
call fcn.0041a6a0
mov r11, qword [rsp + 0x88]
mov rcx, r11
mov rbx, qword [rsp + 0x60]
lea rdx, [rbx + r11]
mov qword [rax], rdx
mov rdx, qword [0x01126778]
mov qword [rax + 0x10], rdx
mov qword [0x01126778], rax
mov rdx, qword [rsp + 0xa0]
movabs r10, 0x7fffffffffff
mov r11, rcx
mov rsi, r11
lea r8, [rbx + r11]
cmp r11, r8
jbe 0x40d7e2
movabs r9, 0x800000000000
mov r12d, 0x1c
lea r13, [0x00acd4b3]
jmp 0x40d840
movabs r9, 0x800000000000
lea r12, [r9 + r11]
shr r12, 0x16
cmp r12, 0x4000000
jb 0x40d80c
mov r12d, 0x21
lea r13, [0x00ad14ba]
jmp 0x40d840
lea r12, [r10 + r8]
shr r12, 0x16
cmp r12, 0x4000000
mov r12d, 0
mov r13d, 0x20
cmovae r12, r13
mov r13d, 0
lea r15, [0x00ad08ae]
cmovae r13, r15
nop dword [rax]
test r12, r12
jne 0x40d87e
test r11, 0x3fffff
jne 0x40d86d
mov rax, rsi
mov rcx, rbx
jmp 0x40d31c
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
lea rax, [0x00ad17d2]
mov ebx, 0x21
call fcn.00437b60
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x48], r12
call fcn.004392e0
lea rax, [0x00ad19c1]
mov ebx, 0x21
call fcn.00439be0
mov rax, qword [rsp + 0x38]
call fcn.00439a40
lea rax, [0x00abc025]
mov ebx, 2
nop
call fcn.00439be0
mov rax, qword [rsp + 0x60]
call fcn.00439a40
lea rax, [0x00acf34f]
mov ebx, 0x1f
nop dword [rax + rax]
call fcn.00439be0
mov rax, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x48]
call fcn.00439be0
call fcn.00439540
call fcn.00439360
lea rax, [0x00ad987f]
mov ebx, 0x2e
call fcn.00437b60
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.00463440
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.0040d2a0