Function at 0x14003512d
Capabilities:
Get geographical location

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x178
mov rdi, rdx
mov rsi, rcx
lea rbx, [rsp + 0x100]
mov rcx, rbx
call fcn.140002f38
cmp byte [rbx], 0
je 0x140035170
mov rax, qword [rsp + 0x108]
mov qword [rsi], rax
and qword [rsi + 8], 0
jmp 0x140035808
cmp byte [rsp + 0x101], 0
je 0x140035676
movzx eax, byte [rsp + 0x102]
cmp eax, 0x5b
je 0x140035491
cmp eax, 0x7b
jne 0x140035898
dec byte [rdi + 0x30]
je 0x14003587f
inc qword [rdi + 0x10]
lea rax, [rsp + 0x148]
and qword [rax + 8], 0
lea rax, [rsp + 0xe8]
and qword [rax + 8], 0
lea rax, [rsp + 0xc0]
and qword [rax + 8], 0
lea r13, [rdi + 0x18]
mov r12b, 1
xor eax, eax
mov qword [rsp + 0x30], rax
lea rbx, [rsp + 0xd8]
xor eax, eax
mov qword [rsp + 0x48], rax
xor eax, eax
mov qword [rsp + 0x28], rax
xor ebp, ebp
mov rcx, rbx
mov rdx, rdi
call fcn.140002f38
cmp byte [rsp + 0xd8], 0
jne 0x140035512
cmp byte [rsp + 0xd9], 0
je 0x140035940
mov al, byte [rsp + 0xda]
movzx ecx, al
cmp ecx, 0x2c
je 0x14003523b
cmp ecx, 0x7d
je 0x14003581c
test r12b, r12b
jne 0x14003526e
jmp 0x14003594e
test bpl, 1
je 0x14003526e
inc qword [rdi + 0x10]
lea rcx, [rsp + 0x58]
mov rdx, rdi
call fcn.140002f38
cmp byte [rsp + 0x58], 0
jne 0x1400358bf
cmp byte [rsp + 0x59], 0
je 0x140035a2a
mov al, byte [rsp + 0x5a]
jmp 0x140035271
xor r12d, r12d
cmp al, 0x22
jne 0x140035903
inc qword [rdi + 0x10]
and qword [rdi + 0x28], 0
lea rcx, [rsp + 0x58]
mov rdx, rdi
mov r8, r13
call fcn.14014928b
cmp dword [rsp + 0x58], 2
mov r15, qword [rsp + 0x60]
je 0x14003551a
mov r14, qword [rsp + 0x68]
mov r9d, 4
mov rcx, r15
mov rdx, r14
lea r8, [0x1404117ca]
call fcn.14007dcaf
test al, al
jne 0x14003531c
mov r9d, 4
mov rcx, r15
mov rdx, r14
lea r8, [0x140411dc7]
call fcn.14007dcaf
test al, al
jne 0x14003539a
mov r9d, 6
mov rcx, r15
mov rdx, r14
lea r8, [0x140411dcb]
call fcn.14007dcaf
test al, al
jne 0x140035413
mov rcx, rdi
call fcn.140019d46
mov bpl, 1
test rax, rax
je 0x1400351f2
jmp 0x14003551f
cmp qword [rsp + 0x28], 0
jne 0x140035a54
mov r14, rbx
lea rcx, [rsp + 0x58]
mov rdx, rdi
call fcn.140019b66
mov r15, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
test rbx, rbx
je 0x14003551a
mov rbp, qword [rsp + 0x68]
lea rcx, [rsp + 0x148]
call fcn.1400c2f77
mov qword [rsp + 0x148], r15
mov qword [rsp + 0x150], rbx
mov qword [rsp + 0xa8], rbp
mov qword [rsp + 0x158], rbp
mov bpl, 1
mov qword [rsp + 0x50], r15
mov qword [rsp + 0xb0], r15
mov qword [rsp + 0x28], rbx
mov rbx, r14
jmp 0x1400351f2
cmp qword [rsp + 0x48], 0
jne 0x140035a5d
mov r14, rbx
lea rcx, [rsp + 0x58]
mov rdx, rdi
call fcn.140019b66
mov r15, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
test rbx, rbx
je 0x14003551a
mov rbp, qword [rsp + 0x68]
lea rcx, [rsp + 0xe8]
call fcn.1400c2f77
mov qword [rsp + 0xe8], r15
mov qword [rsp + 0xf0], rbx
mov qword [rsp + 0xf8], rbp
mov bpl, 1
mov qword [rsp + 0x138], r15
mov qword [rsp + 0x140], r15
mov qword [rsp + 0x48], rbx
mov rbx, r14
jmp 0x1400351f2
cmp qword [rsp + 0x30], 0
jne 0x140035a73
mov r15, rbx
lea rcx, [rsp + 0x58]
mov rdx, rdi
call fcn.140019b66
mov rax, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
test rbx, rbx
je 0x1400359da
mov rbp, qword [rsp + 0x68]
lea rcx, [rsp + 0xc0]
mov r14, rax
call fcn.1400c2f77
mov qword [rsp + 0xc0], r14
mov qword [rsp + 0xc8], rbx
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0xd0], rbp
mov bpl, 1
mov qword [rsp + 0x38], r14
mov qword [rsp + 0xb8], r14
mov qword [rsp + 0x30], rbx
mov rbx, r15
jmp 0x1400351f2
dec byte [rdi + 0x30]
je 0x14003587f
inc qword [rdi + 0x10]
lea rdx, [rsp + 0xc0]
mov qword [rdx], rdi
mov byte [rdx + 8], 1
lea rbx, [rsp + 0x58]
mov rcx, rbx
call fcn.14001ac5c
cmp qword [rbx], 0
je 0x1400354ca
mov rbx, qword [rsp + 0x60]
jmp 0x1400356e7
mov rcx, qword [rsp + 0x68]
mov rax, rcx
mov qword [rsp + 0x28], rcx
test rcx, rcx
je 0x140035923
lea rbp, [rsp + 0x58]
mov r13, qword [rbp + 8]
mov rbx, qword [rbp + 0x18]
lea rdx, [rsp + 0xc0]
mov rcx, rbp
call fcn.14001ac5c
cmp qword [rbp], 0
je 0x140035687
mov rbx, qword [rsp + 0x60]
jmp 0x1400356da
mov r15, qword [rsp + 0xe0]
mov bpl, 1
jmp 0x140035522
mov r15, rax
mov r12b, 1
mov r14, qword [rsp + 0x30]
mov r13, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
mov rbx, r15
test r14, r14
je 0x140035547
mov rdx, r14
call fcn.14007ab60
mov rbx, r15
test bpl, bpl
je 0x140035566
cmp qword [rsp + 0x48], 0
je 0x140035566
mov rcx, qword [rsp + 0x140]
mov rdx, qword [rsp + 0x48]
call fcn.14007ab60
mov qword [rsp + 0x50], rbx
mov r15, rsi
cmp qword [rsp + 0x28], 0
setne al
test r12b, al
je 0x14003558e
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0x28]
call fcn.14007ab60
xor eax, eax
mov qword [rsp + 0x28], rax
mov rbx, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xb8]
inc byte [rdi + 0x30]
mov rcx, rdi
call fcn.140003072
mov rbp, rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x58], rax
mov rcx, qword [rsp + 0x28]
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x68], rbx
movaps xmm0, xmmword [rsp + 0x160]
movups xmmword [rsp + 0x70], xmm0
mov rax, qword [rsp + 0x170]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rsi
mov qword [rsp + 0x90], r14
mov qword [rsp + 0x98], r13
mov qword [rsp + 0xa0], rbp
test rcx, rcx
je 0x140035650
test rbp, rbp
mov rsi, r15
jne 0x14003575b
lea rax, [rsp + 0x68]
mov rcx, qword [rax + 0x30]
mov qword [rsp + 0x130], rcx
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movaps xmmword [rsp + 0x120], xmm2
movaps xmmword [rsp + 0x110], xmm1
movaps xmmword [rsp + 0x100], xmm0
jmp 0x14003566c
test rbp, rbp
mov rsi, r15
je 0x140035665
lea rcx, [rsp + 0xa0]
call fcn.14000aae6
xor eax, eax
mov qword [rsp + 0x28], rax
mov rbx, qword [rsp + 0x50]
jmp 0x1400357c0
lea rdx, [rsp + 0x58]
mov qword [rdx], 5
jmp 0x14003588b
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x140035987
mov qword [rsp + 0xa8], rax
lea rbp, [rsp + 0x58]
mov r14, qword [rbp + 8]
mov r12, qword [rbp + 0x18]
lea rdx, [rsp + 0xc0]
mov rcx, rbp
call fcn.14001ac5c
cmp qword [rbp], 0
je 0x1400358c9
mov rbx, qword [rsp + 0x60]
mov rcx, r14
mov rdx, qword [rsp + 0xa8]
call fcn.14007ab60
mov rcx, r13
mov rdx, qword [rsp + 0x28]
call fcn.14007ab60
xor eax, eax
mov qword [rsp + 0x28], rax
inc byte [rdi + 0x30]
mov rcx, rdi
call fcn.1400030e7
mov rbp, rax
mov qword [rsp + 0x58], rbx
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], r14
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], r13
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x88], r12
mov qword [rsp + 0x90], r15
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0xa0], rbp
test rax, rax
je 0x140035771
test rbp, rbp
je 0x14003578c
lea rcx, [rsp + 0x58]
call fcn.14000ba0c
xor eax, eax
mov qword [rsp + 0x28], rax
mov rbx, rbp
jmp 0x1400357c0
test rbp, rbp
je 0x140035783
lea rcx, [rsp + 0xa0]
call fcn.14000aae6
xor eax, eax
mov qword [rsp + 0x28], rax
jmp 0x1400357c0
lea rax, [rsp + 0x68]
mov rcx, qword [rax + 0x30]
mov qword [rsp + 0x130], rcx
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movaps xmmword [rsp + 0x120], xmm2
movaps xmmword [rsp + 0x110], xmm1
movaps xmmword [rsp + 0x100], xmm0
cmp qword [rsp + 0x28], 0
je 0x1400358af
mov rax, qword [rsp + 0x130]
mov qword [rsi + 0x40], rax
movaps xmm0, xmmword [rsp + 0x100]
movaps xmm1, xmmword [rsp + 0x110]
movaps xmm2, xmmword [rsp + 0x120]
movups xmmword [rsi + 0x30], xmm2
movups xmmword [rsi + 0x20], xmm1
movups xmmword [rsi + 0x10], xmm0
mov qword [rsi], rbx
mov rax, qword [rsp + 0x28]
mov qword [rsi + 8], rax
add rsp, 0x178
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp qword [rsp + 0x28], 0
sete r12b
je 0x1400359a0
cmp qword [rsp + 0x48], 0
sete bpl
mov r14, qword [rsp + 0x30]
mov r13, qword [rsp + 0x40]
je 0x1400359bc
test r14, r14
mov rbx, qword [rsp + 0xb0]
je 0x1400359f2
mov r15, rsi
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0x170], rax
movups xmm0, xmmword [rsp + 0xe8]
movaps xmmword [rsp + 0x160], xmm0
jmp 0x140035595
lea rdx, [rsp + 0x58]
mov qword [rdx], 0x18
mov rcx, rdi
call fcn.140331a00
jmp 0x140035163
lea r8, [0x14033e8e8]
lea rdx, [rsp + 0x58]
mov rcx, rdi
call fcn.140331c90
mov rbx, rax
mov rcx, rdi
mov rdx, rbx
call fcn.140331a38
jmp 0x140035163
mov r15, qword [rsp + 0x60]
jmp 0x14003551a
mov r15, qword [rsp + 0x68]
test r15, r15
je 0x140035a3b
mov qword [rsp + 0x48], r12
mov r12, qword [rsp + 0x60]
mov qword [rsp + 0x50], r14
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x30], rax
mov r14, rbx
mov rbx, r13
mov r13, qword [rsp + 0xa8]
jmp 0x1400356ee
movzx eax, al
cmp eax, 0x7d
mov r14, qword [rsp + 0x30]
mov r13, qword [rsp + 0x40]
lea rdx, [rsp + 0x58]
jne 0x14003596a
mov qword [rdx], reloc.WS2_32.dll_setsockopt
jmp 0x140035971
lea rdx, str.struct_Credentials_with_3_elements
xor eax, eax
mov qword [rsp + 0x28], rax
xor ecx, ecx
call fcn.14033218f
mov rbx, rax
jmp 0x1400356ee
lea rdx, [rsp + 0x58]
mov qword [rdx], 3
jmp 0x14003595a
lea rdx, [rsp + 0x58]
mov qword [rdx], 8
mov rcx, rdi
call fcn.140331a00
mov r15, rax
jmp 0x14003551a
mov qword [rdx], reloc.WS2_32.dll_recvfrom
mov rcx, rdi
call fcn.140331a00
mov r15, rax
mov bpl, 1
mov r12b, 1
jmp 0x14003552f
lea rdx, str.struct_Credentials_with_3_elements
mov ecx, 1
call fcn.14033218f
mov rbx, rax
jmp 0x1400356da
lea rcx, [0x1404117ca]
mov edx, 4
call fcn.1403320e3
mov r15, rax
mov bpl, 1
jmp 0x140035525
lea rcx, [0x140411dc7]
mov edx, 4
call fcn.1403320e3
mov r15, rax
mov rbx, qword [rsp + 0xb0]
jmp 0x140035a18
mov r12b, 1
mov bpl, 1
mov rbx, rax
mov r14, qword [rsp + 0x30]
mov r13, qword [rsp + 0x40]
jmp 0x140035547
lea rcx, [0x140411dcb]
mov edx, 6
call fcn.1403320e3
mov r15, rax
mov rcx, qword [rsp + 0x138]
mov rdx, qword [rsp + 0x48]
call fcn.14007ab60
mov rcx, rbx
mov rdx, qword [rsp + 0x28]
call fcn.14007ab60
jmp 0x14003552f
lea rdx, [rsp + 0x58]
mov qword [rdx], 5
jmp 0x14003595a
lea rdx, str.struct_Credentials_with_3_elements
mov ecx, 2
call fcn.14033218f
mov rbx, rax
jmp 0x1400356ca
lea rcx, [0x1404117ca]
jmp 0x140035a64
lea rcx, [0x140411dc7]
mov edx, 4
call fcn.14033225d
jmp 0x140035962
lea rcx, [0x140411dcb]
mov edx, 6
call fcn.14033225d
mov r15, rax
mov r12b, 1
mov bpl, 1
mov r14, qword [rsp + 0x30]
mov r13, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
jmp 0x14003553c