Function at 0x1400354a5
Capabilities:
Get geographical location

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x128
mov rbx, rdx
mov rsi, rcx
movabs r13, 0x8000000000000000
lea rdi, [rsp + 0xe0]
mov rcx, rdi
call fcn.140002be7
cmp byte [rdi], 0
je 0x1400354f1
mov rax, qword [rsp + 0xe8]
mov qword [rsi + 8], rax
mov qword [rsi], r13
jmp 0x140035e26
cmp byte [rsp + 0xe1], 0
je 0x14003598c
movzx eax, byte [rsp + 0xe2]
cmp eax, 0x5b
je 0x1400357e6
cmp eax, 0x7b
jne 0x140035a46
dec byte [rbx + 0x30]
je 0x1400359ec
inc qword [rbx + 0x28]
mov rax, r13
lea r13, [rbx + 0x18]
mov cl, 1
mov dword [rsp + 0x88], ecx
xor edi, edi
lea r12, [rsp + 0x38]
lea rbp, [0x1403aabbb]
mov r14, rax
mov qword [rsp + 0x20], rax
xor eax, eax
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0xd0]
mov rdx, rbx
call fcn.140002be7
cmp byte [rsp + 0xd0], 0
jne 0x1400358d9
cmp byte [rsp + 0xd1], 0
je 0x140035b64
mov al, byte [rsp + 0xd2]
movzx ecx, al
cmp ecx, 0x2c
je 0x1400355a2
cmp ecx, 0x7d
je 0x14003599a
test dil, 1
je 0x1400355d1
jmp 0x140035bd3
test dil, 1
je 0x1400355d1
inc qword [rbx + 0x28]
mov rcx, r12
mov rdx, rbx
call fcn.140002be7
cmp byte [rsp + 0x38], 0
jne 0x140035a62
cmp byte [rsp + 0x39], 0
je 0x140035cc8
mov al, byte [rsp + 0x3a]
cmp al, 0x22
jne 0x140035b29
inc qword [rbx + 0x28]
and qword [rbx + 0x10], 0
mov rcx, r12
mov rdx, r13
mov r8, rbx
call fcn.1401133bf
cmp dword [rsp + 0x38], 2
mov r15, qword [rsp + 0x40]
je 0x140035cdf
mov rdi, qword [rsp + 0x48]
mov r9d, 2
mov rcx, r15
mov rdx, rdi
lea r8, [0x1403aa9c1]
call fcn.140064d09
test al, al
jne 0x140035696
mov r9d, 9
mov rcx, r15
mov rdx, rdi
lea r8, [0x1403aac96]
call fcn.140064d09
test al, al
jne 0x140035702
mov r9d, 4
mov rcx, r15
mov rdx, rdi
lea r8, [0x1403aac9f]
call fcn.140064d09
test al, al
jne 0x14003576f
mov r9d, 4
mov rcx, r15
mov rdx, rdi
mov r8, rbp
call fcn.140064d09
test al, al
jne 0x1400357a9
mov rcx, rbx
call fcn.140017944
mov dil, 1
test rax, rax
je 0x140035553
jmp 0x140035cdc
movabs rdi, 0x8000000000000000
cmp r14, rdi
jne 0x140035eb4
lea rcx, [rsp + 0xb8]
mov rdx, rbx
call fcn.14001975d
mov r14, qword [rsp + 0xb8]
cmp r14, rdi
je 0x140035bfa
mov rcx, rdi
mov rdx, qword [rsp + 0x90]
call fcn.14000a0fc
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x80], rax
mov dil, 1
jmp 0x140035553
movabs rdi, 0x8000000000000000
cmp qword [rsp + 0x20], rdi
jne 0x140035ecd
lea rcx, [rsp + 0x98]
mov rdx, rbx
call fcn.14001739a
mov rax, qword [rsp + 0x98]
cmp rax, rdi
je 0x140035c12
mov qword [rsp + 0x20], rax
mov rcx, rdi
mov rdx, qword [rsp + 0x30]
call fcn.14000a0fc
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0xb0], rax
mov dil, 1
jmp 0x140035553
cmp qword [rsp + 0x28], 0
jne 0x140035ef8
mov rcx, rbx
call fcn.140018fe8
mov r15, rdx
test rax, rax
jne 0x140035cdf
mov eax, 1
mov qword [rsp + 0x28], rax
mov dil, 1
mov qword [rsp + 0x120], r15
jmp 0x140035553
test byte [rsp + 0x88], 1
je 0x140035f01
mov rcx, rbx
call fcn.140019414
mov r15, rdx
test rax, rax
jne 0x140035cdf
mov dil, 1
mov dword [rsp + 0x88], 0
mov qword [rsp + 0x118], r15
jmp 0x140035553
dec byte [rbx + 0x30]
je 0x1400359ec
inc qword [rbx + 0x28]
lea rdx, [rsp + 0xb8]
mov qword [rdx], rbx
mov byte [rdx + 8], 1
lea rdi, [rsp + 0x38]
mov rcx, rdi
call fcn.140019ba9
mov r14, qword [rdi]
movabs r12, 0x8000000000000001
cmp r14, r12
je 0x1400358c5
movabs r13, 0x8000000000000000
cmp r14, r13
je 0x140035b4e
lea rdi, [rsp + 0x38]
mov r15, qword [rdi + 8]
mov rbp, qword [rdi + 0x10]
lea rdx, [rsp + 0xb8]
mov rcx, rdi
call fcn.140019cea
mov rax, qword [rdi]
cmp rax, r12
je 0x1400358e6
cmp rax, r13
je 0x140035bba
mov qword [rsp + 0x80], rbp
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov rdi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xb8]
lea r12, [rsp + 0x98]
mov rcx, r12
mov rdx, rbp
call fcn.140002be7
cmp byte [r12], 0
je 0x140035a05
mov r12, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x28]
call fcn.1400afd38
jmp 0x1400358eb
mov r15, qword [rsp + 0x40]
movabs r13, 0x8000000000000000
mov r14, r13
jmp 0x140035909
mov r15, qword [rsp + 0xd8]
jmp 0x140035cdf
mov r12, qword [rsp + 0x40]
mov rcx, r14
mov rdx, r15
call fcn.1400afd38
mov r15, r12
movabs r13, 0x8000000000000000
mov r14, r13
mov rdi, r12
inc byte [rbx + 0x30]
mov rcx, rbx
call fcn.140002ddd
mov r12, rax
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], rbp
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rdi
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], r12
cmp r14, r13
jne 0x14003596e
test r12, r12
jne 0x140035da8
jmp 0x140035db2
test r12, r12
je 0x140035dce
lea rcx, [rsp + 0x38]
call fcn.14000a91e
mov r14, r13
mov r15, r12
jmp 0x140035df6
lea rdx, [rsp + 0x38]
mov qword [rdx], 5
jmp 0x1400359f8
movabs r13, 0x8000000000000000
cmp r14, r13
setne r12b
je 0x140035be4
cmp qword [rsp + 0x20], r13
setne dil
je 0x140035c2d
mov rcx, qword [rsp + 0x28]
test rcx, rcx
sete al
or al, byte [rsp + 0x88]
test al, 1
jne 0x140035c48
mov r15, qword [rsp + 0x90]
mov rbp, qword [rsp + 0x30]
jmp 0x140035d3e
lea rdx, [rsp + 0x38]
mov qword [rdx], reloc.WS2_32.dll_setsockopt
mov rcx, rbx
call fcn.1402ddbec
jmp 0x1400354e5
cmp byte [rsp + 0x99], 0
je 0x140035c8a
mov al, byte [rsp + 0x9a]
movzx ecx, al
cmp ecx, 0x2c
je 0x140035a6c
cmp ecx, 0x5d
je 0x140035e4a
cmp byte [rsp + 0xc0], 0
jne 0x140035a7a
lea rdx, [rsp + 0x38]
mov qword [rdx], 7
jmp 0x140035cb8
lea r8, [0x1402e5b78]
lea rdx, [rsp + 0x38]
mov rcx, rbx
call fcn.1402d91c2
mov r15, rax
jmp 0x140035e3a
mov r15, qword [rsp + 0x40]
jmp 0x140035cdf
cmp byte [rsp + 0xc0], 0
je 0x140035b91
cmp al, 0x5d
je 0x140035cac
mov rcx, rbp
call fcn.1400386e3
mov r12, rdx
test rax, rax
jne 0x1400358b4
mov qword [rsp + 0xb0], r12
lea r12, [rsp + 0x98]
mov rcx, r12
mov rdx, rbp
call fcn.140002be7
cmp byte [r12], 0
jne 0x1400358ac
cmp byte [rsp + 0x99], 0
je 0x140035c8a
movzx eax, byte [rsp + 0x9a]
cmp eax, 0x2c
jne 0x140035e60
inc qword [rbp + 0x28]
lea r12, [rsp + 0x38]
mov rcx, r12
mov rdx, rbp
call fcn.140002be7
cmp byte [r12], 0
jne 0x140035bb0
cmp byte [rsp + 0x39], 0
je 0x140035ea3
cmp byte [rsp + 0x3a], 0x5d
je 0x140035cac
mov rcx, rbp
call fcn.140016d00
test rax, rax
je 0x140035e77
mov r12, rdx
jmp 0x1400358b4
movzx eax, al
cmp eax, 0x7d
movabs r13, 0x8000000000000000
mov rbp, qword [rsp + 0x30]
lea rdx, [rsp + 0x38]
jne 0x140035b75
mov qword [rdx], reloc.WS2_32.dll_select
jmp 0x140035b7c
lea rdx, str.struct_File_with_4_elements
xor ecx, ecx
call fcn.1402d994a
mov r15, rax
jmp 0x1400358ca
lea rdx, [rsp + 0x38]
mov qword [rdx], 3
jmp 0x140035cd4
mov qword [rdx], reloc.WS2_32.dll_recv
mov rcx, rbx
call fcn.1402ddbec
mov r15, rax
xor edi, edi
xor r12d, r12d
jmp 0x140035cf3
inc qword [rbp + 0x28]
lea r12, [rsp + 0x38]
mov rcx, r12
mov rdx, rbp
call fcn.140002be7
cmp byte [r12], 0
je 0x140035c98
mov r12, qword [rsp + 0x40]
jmp 0x1400358b4
lea rdx, str.struct_File_with_4_elements
mov ecx, 1
call fcn.1402d994a
mov r12, rax
jmp 0x1400358eb
lea rdx, [rsp + 0x38]
mov qword [rdx], 8
jmp 0x140035cd4
lea rcx, [0x1403aa9c1]
mov edx, 2
call fcn.1402d98f4
mov r15, rax
jmp 0x140035c0b
mov r15, qword [rsp + 0xc0]
mov r14, rdi
xor r12d, r12d
mov r13, rdi
xor edi, edi
jmp 0x140035cee
mov r15, qword [rsp + 0xa0]
xor r12d, r12d
mov rcx, rdi
mov r13, rdi
mov rbp, qword [rsp + 0x30]
jmp 0x140035d0f
lea rcx, [0x1403aac96]
mov edx, 9
call fcn.1402d98f4
mov r15, rax
mov rbp, qword [rsp + 0x30]
jmp 0x140035c78
test rcx, rcx
lea rax, [0x1403aac9f]
cmove rbp, rax
mov edx, 4
mov rcx, rbp
call fcn.1402d98f4
mov r15, rax
mov rcx, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x30]
mov rdx, rbp
call fcn.1400afd38
mov rcx, r14
mov rdx, qword [rsp + 0x90]
call fcn.1400afd38
jmp 0x140035cf3
lea rdx, [rsp + 0x38]
mov qword [rdx], 2
jmp 0x140035cb8
cmp byte [rsp + 0x39], 0
je 0x140035ea3
mov al, byte [rsp + 0x3a]
jmp 0x140035a7a
lea rdx, [rsp + 0x38]
mov qword [rdx], reloc.WS2_32.dll_select
mov rcx, rbp
call fcn.1402ddbec
mov r12, rax
jmp 0x1400358b4
lea rdx, [rsp + 0x38]
mov qword [rdx], 5
mov rcx, rbx
call fcn.1402ddbec
mov r15, rax
xor edi, edi
xor r12d, r12d
movabs r13, 0x8000000000000000
mov rbp, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x20]
test dil, dil
jne 0x140035d0f
cmp rcx, r13
je 0x140035d0f
mov rdx, rbp
call fcn.1400afd38
mov rcx, qword [rsp + 0x20]
test r12b, r12b
mov qword [rsp + 0x20], rcx
jne 0x140035d3b
cmp r14, r13
mov r12, qword [rsp + 0x80]
je 0x140035d36
mov rcx, r14
mov rdx, qword [rsp + 0x90]
call fcn.1400afd38
mov r14, r13
jmp 0x140035d46
mov r14, r13
mov r12, qword [rsp + 0x80]
inc byte [rbx + 0x30]
mov rcx, rbx
call fcn.140002d68
mov rdi, rax
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], r12
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rbp
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x120]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rdi
cmp r14, r13
jne 0x140035db7
test rdi, rdi
je 0x140035db2
lea rcx, [rsp + 0x78]
call fcn.140009e87
mov r14, r13
jmp 0x140035df6
test rdi, rdi
je 0x140035dce
lea rcx, [rsp + 0x38]
call fcn.14000a91e
mov r14, r13
mov r15, rdi
jmp 0x140035df6
lea rax, [rsp + 0x48]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movaps xmmword [rsp + 0x100], xmm2
movaps xmmword [rsp + 0xf0], xmm1
movaps xmmword [rsp + 0xe0], xmm0
cmp r14, r13
je 0x140035e3a
movaps xmm0, xmmword [rsp + 0xe0]
movaps xmm1, xmmword [rsp + 0xf0]
movaps xmm2, xmmword [rsp + 0x100]
movups xmmword [rsi + 0x30], xmm2
movups xmmword [rsi + 0x20], xmm1
movups xmmword [rsi + 0x10], xmm0
mov qword [rsi], r14
mov qword [rsi + 8], r15
add rsp, 0x128
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rbx
mov rdx, r15
call fcn.1402d9180
jmp 0x1400354e5
lea rdx, str.struct_File_with_4_elements
mov ecx, 2
call fcn.1402d994a
jmp 0x140035cc0
cmp eax, 0x5d
jne 0x140035a35
lea rdx, str.struct_File_with_4_elements
mov ecx, 3
jmp 0x140035e56
movabs r13, 0x8000000000000000
mov rbp, qword [rsp + 0x80]
mov qword [rsp + 0x88], rdi
mov rdi, qword [rsp + 0xb0]
mov qword [rsp + 0x30], rdx
jmp 0x140035909
lea rdx, [rsp + 0x38]
mov qword [rdx], 5
jmp 0x140035cb8
lea rcx, [0x1403aa9c1]
mov edx, 2
call fcn.1402d99c1
mov r15, rax
jmp 0x140035c05
lea rcx, [0x1403aac96]
mov edx, 9
call fcn.1402d99c1
mov r15, rax
mov rcx, qword [rsp + 0x20]
xor r12d, r12d
mov r13, rdi
xor edi, edi
mov rbp, qword [rsp + 0x30]
jmp 0x140035cf8
lea rcx, [0x1403aac9f]
jmp 0x140035f08
lea rcx, [0x1403aabbb]
mov edx, 4
call fcn.1402d99c1
jmp 0x140035cdc