Function at 0x1400014b0
Capabilities:
Create http request
Get geographical location

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
mov rdi, rcx
mov qword [rsp + 0x88], 0
mov dword [rsp + 0x20], 0
lea rcx, str.WinINet_Example
mov edx, 1
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.WININET.dll_InternetOpenW]
mov qword [rsp + 0x80], rax
lea rbx, [rsp + 0x70]
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x90], 0x17
lea rsi, [rsp + 0x60]
lea rdx, [rsp + 0x90]
mov rcx, rsi
xor r8d, r8d
call fcn.1400b92e0
mov qword [rsp + 0x60], rax
mov rcx, qword [rsp + 0x90]
mov qword [rsp + 0x70], rcx
vmovups ymm0, ymmword [str.http:__ip_api.com_json_]
vmovups ymmword [rax], ymm0
vmovups ymm0, ymmword [0x1400e941c]
vmovups ymmword [rax + 0xe], ymm0
mov qword [rsp + 0x68], rcx
mov word [rax + rcx*2], 0
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x80]
mov r8, rsi
vzeroupper
call fcn.140021890
mov rcx, qword [rsp + 0x60]
cmp rcx, rbx
je 0x140001584
call fcn.1400e4650
cmp qword [rsp + 0x98], 0
je 0x1400016bc
lea rsi, [rsp + 0x68]
mov rcx, rsi
call fcn.1400afb80
vxorps xmm0, xmm0, xmm0
vmovups xmmword [rsp + 0x70], xmm0
lea rdx, str._countryCode_:_______
lea r8, [0x1400e90de]
lea rbx, [rsp + 0x60]
mov rcx, rbx
mov r9d, 0x10
call fcn.1400b24d0
vxorps xmm0, xmm0, xmm0
vmovups ymmword [rsp + 0xb0], ymm0
mov rcx, qword [rsp + 0x90]
mov rax, qword [rsp + 0x98]
lea rdx, [rcx + rax*2]
mov byte [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r8, [rsp + 0xb0]
mov r9, rbx
vzeroupper
call fcn.1400cdc80
mov rcx, qword [rsp + 0xb0]
test al, al
je 0x1400016c0
mov rax, qword [rsp + 0xb8]
xor ebx, ebx
sub rax, rcx
je 0x1400016c2
cmp rax, 0x78
jne 0x1400016c2
cmp byte [rcx + 0x28], 0
je 0x140001769
lea rax, [rsp + 0x48]
mov rbx, qword [rcx + 0x18]
mov r14, qword [rcx + 0x20]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 0
sub r14, rbx
mov r15, r14
sar r15, 1
mov qword [rsp + 0x58], r15
mov rdx, r15
cmp r15, 8
jb 0x14000169e
lea rcx, [rsp + 0x38]
lea rdx, [rsp + 0x58]
xor r8d, r8d
call fcn.1400b92e0
mov qword [rsp + 0x38], rax
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x48], rdx
test r15, r15
je 0x14000179f
cmp r15, 1
jne 0x140001787
movzx ecx, word [rbx]
mov word [rax], cx
jmp 0x14000179f
xor ebx, ebx
jmp 0x140001717
xor ebx, ebx
test rcx, rcx
je 0x1400016cc
call fcn.1400e4650
mov rdi, qword [rsp + 0x78]
test rdi, rdi
je 0x14000170f
mov rax, qword [rdi + 8]
movabs rcx, 0x100000001
cmp rax, rcx
jne 0x140001705
mov qword [rdi + 8], 0
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x10]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
jmp 0x14000170f
lock dec dword [rdi + 8]
je 0x140001aa6
mov rcx, rsi
call fcn.1400afc80
mov rcx, qword [rsp + 0x90]
lea rax, [rsp + 0xa0]
cmp rcx, rax
je 0x140001731
call fcn.1400e4650
mov rcx, qword [rsp + 0x88]
test rcx, rcx
je 0x140001744
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x140001757
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, ebx
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
lea rax, [rsp + 0x48]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 0
mov word [rsp + 0x48], 0
xor edx, edx
jmp 0x1400017aa
mov rcx, rax
mov rdx, rbx
mov r8, r14
call sub.msvcrt.dll_memcpy
mov rdx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x40], rdx
mov word [rax + rdx*2], 0
mov r9, qword [rdi]
mov rax, qword [rdi + 8]
mov rcx, rax
sub rcx, r9
mov r10, rcx
sar r10, 7
test r10, r10
jle 0x14000193e
and rcx, 0xffffffffffffff80
mov r8, rcx
add r8, r9
mov rcx, qword [rsp + 0x38]
jmp 0x1400017ed
sub r9, 0xffffffffffffff80
lea r11, [r10 - 1]
cmp r10, 1
mov r10, r11
jle 0x140001a20
cmp rdx, qword [r9 + 8]
jne 0x140001848
test rdx, rdx
je 0x140001a7b
mov r11, qword [r9]
cmp rcx, r11
je 0x140001a7b
test rcx, rcx
setne bl
test r11, r11
sete dil
test bl, dil
jne 0x140001848
or bl, dil
je 0x140001848
xor edi, edi
nop word cs:[rax + rax]
movzx ebx, word [rcx + rdi*2]
cmp bx, word [r11 + rdi*2]
jne 0x140001848
inc rdi
cmp rdx, rdi
jne 0x140001830
jmp 0x140001a7b
cmp rdx, qword [r9 + 0x28]
jne 0x140001897
lea r11, [r9 + 0x20]
test rdx, rdx
je 0x140001936
mov rdi, qword [r11]
cmp rcx, rdi
je 0x140001936
test rcx, rcx
setne bl
test rdi, rdi
sete bpl
test bl, bpl
jne 0x140001897
or bl, bpl
je 0x140001897
xor ebx, ebx
movzx ebp, word [rcx + rbx*2]
cmp bp, word [rdi + rbx*2]
jne 0x140001897
inc rbx
cmp rdx, rbx
jne 0x140001880
jmp 0x140001936
cmp rdx, qword [r9 + 0x48]
jne 0x1400018e4
lea r11, [r9 + 0x40]
test rdx, rdx
je 0x140001936
mov rdi, qword [r11]
cmp rcx, rdi
je 0x140001936
test rcx, rcx
setne bl
test rdi, rdi
sete bpl
test bl, bpl
jne 0x1400018e4
or bl, bpl
je 0x1400018e4
xor ebx, ebx
nop
movzx ebp, word [rcx + rbx*2]
cmp bp, word [rdi + rbx*2]
jne 0x1400018e4
inc rbx
cmp rdx, rbx
jne 0x1400018d0
jmp 0x140001936
cmp rdx, qword [r9 + 0x68]
jne 0x1400017d8
lea r11, [r9 + 0x60]
test rdx, rdx
je 0x140001936
mov rdi, qword [r11]
cmp rcx, rdi
je 0x140001936
test rcx, rcx
setne bl
test rdi, rdi
sete bpl
test bl, bpl
jne 0x1400017d8
or bl, bpl
je 0x1400017d8
xor ebx, ebx
movzx ebp, word [rcx + rbx*2]
cmp bp, word [rdi + rbx*2]
jne 0x1400017d8
inc rbx
cmp rdx, rbx
jne 0x140001920
mov r9, r11
jmp 0x140001a7b
mov r8, r9
sar rcx, 5
cmp rcx, 1
je 0x1400019d7
cmp rcx, 2
je 0x14000199f
cmp rcx, 3
jne 0x140001a06
cmp rdx, qword [r8 + 8]
jne 0x14000199b
mov rcx, qword [rsp + 0x38]
test rdx, rdx
je 0x140001a78
mov r9, qword [r8]
cmp rcx, r9
je 0x140001a78
test rcx, rcx
je 0x140001989
test r9, r9
je 0x14000199b
test rcx, rcx
jne 0x140001a5d
test r9, r9
je 0x140001a5d
add r8, 0x20
cmp rdx, qword [r8 + 8]
jne 0x1400019d3
mov rcx, qword [rsp + 0x38]
test rdx, rdx
je 0x140001a78
mov r9, qword [r8]
cmp rcx, r9
je 0x140001a78
test rcx, rcx
je 0x1400019c9
test r9, r9
je 0x1400019d3
test rcx, rcx
jne 0x140001a44
test r9, r9
je 0x140001a44
add r8, 0x20
mov rcx, qword [rsp + 0x38]
cmp rdx, qword [r8 + 8]
jne 0x140001a01
test rdx, rdx
je 0x140001a78
mov r9, qword [r8]
cmp rcx, r9
je 0x140001a78
test rcx, rcx
je 0x140001a10
test r9, r9
jne 0x140001a10
mov r9, rax
jmp 0x140001a7b
mov rcx, qword [rsp + 0x38]
mov r9, rax
jmp 0x140001a7b
test rcx, rcx
jne 0x140001a2b
test r9, r9
je 0x140001a2b
xor ecx, ecx
mov bl, 1
jmp 0x140001a8b
mov rcx, rax
sub rcx, r8
jmp 0x140001941
xor r10d, r10d
movzx r11d, word [rcx + r10*2]
cmp r11w, word [r9 + r10*2]
jne 0x140001a01
inc r10
cmp rdx, r10
jne 0x140001a2e
jmp 0x140001a78
xor r10d, r10d
movzx r11d, word [rcx + r10*2]
cmp r11w, word [r9 + r10*2]
jne 0x1400019d3
inc r10
cmp rdx, r10
jne 0x140001a47
jmp 0x140001a78
xor r10d, r10d
movzx r11d, word [rcx + r10*2]
cmp r11w, word [r9 + r10*2]
jne 0x14000199b
inc r10
cmp rdx, r10
jne 0x140001a60
mov r9, r8
cmp r9, rax
sete bl
lea rax, [rsp + 0x48]
cmp rcx, rax
je 0x140001a90
call fcn.1400e4650
mov rcx, qword [rsp + 0xb0]
test rcx, rcx
jne 0x1400016c7
jmp 0x1400016cc
mov rcx, rdi
call fcn.1400a6cb0
jmp 0x14000170f