Function at 0x140016080
Capabilities:
Print debug messages

Disassembly:
push r15
xor eax, eax
push r14
push r13
push r12
push rbp
mov rbp, rcx
mov ecx, 0xfc
push rdi
push rsi
push rbx
sub rsp, 0x4b8
lea rdi, [rsp + 0xc0]
mov qword [rsp + 0x508], rdx
lea rsi, [rsp + 0x58]
rep stosd dword [rdi], eax
lea rdi, [rsp + 0x58]
mov ecx, 6
mov dword [rsp + 0x50], 0
rep stosd dword [rdi], eax
lea rdi, [rsp + 0x70]
mov ecx, 8
mov dword [rsp + 0x54], 0
rep stosd dword [rdi], eax
lea rdi, [rsp + 0x90]
mov ecx, 8
mov qword [rsp + 0xb0], 0
rep stosd dword [rdi], eax
mov qword [rsp + 0xb8], 0
call sym.TokenImpersonate
mov rbx, qword [0x14002d650]
mov rax, qword [rbx]
cmp qword [rax + 0x74], 0
jne 0x140016140
lea rcx, [0x14002b610]
lea r9, str.No_hosts_left_to_use..._exit_now.
mov r8d, 0x31
lea rdx, str.HttpSend
call sym.printf.constprop.0_14
xor ecx, ecx
call sym.CommandExit
mov rdi, qword [rbx]
cmp qword [rdi + 0x10], 0
jne 0x1400161be
cmp dword [rdi + 0xb6], 0
mov rax, qword [rdi + 0x4a8]
mov rcx, qword [rdi + 0x9e]
je 0x14001617a
mov r8, qword [rdi + 0xba]
xor r9d, r9d
mov dword [rsp + 0x20], 0
mov edx, 3
jmp 0x14001618d
mov dword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
mov edx, 1
call rax
mov qword [rdi + 0x10], rax
mov rax, qword [rbx]
cmp qword [rax + 0x10], 0
jne 0x1400161be
mov rax, qword [rax + 0x8c2]
mov r8d, 0x43
lea rdx, str.HttpSend
lea rcx, str._DEBUG::_s::_d__WinHttpOpen:_Failed____d_n
mov r9d, dword [rax + 0x68]
jmp 0x140016211
mov rax, qword [rbx]
xor r9d, r9d
mov rdx, qword [rax + 0x74]
mov rcx, qword [rax + 0x10]
movzx r8d, word [rdx + 8]
mov rdx, qword [rdx]
call qword [rax + 0x4b0]
test rax, rax
mov qword [rsp + 0x48], rax
mov rax, qword [rbx]
je 0x1400161f2
mov r12, qword [rax + 0xa6]
xor edi, edi
jmp 0x14001621e
mov rax, qword [rax + 0x8c2]
mov r8d, 0x4f
lea rdx, str.HttpSend
lea rcx, str._DEBUG::_s::_d__WinHttpConnect:_Failed____d_n
mov r9d, dword [rax + 0x68]
call sym.DbgPrint
xor r15d, r15d
jmp 0x14001687e
mov eax, edi
cmp qword [r12 + rax*8], 0
je 0x14001622b
inc edi
jmp 0x14001621e
call sym.RandomNumber32
xor edx, edx
div edi
mov rax, qword [rbx]
cmp dword [rax + 0x9a], 0
mov r14, qword [r12 + rdx*8]
mov dword [rsp + 0x50], 0x100
je 0x140016254
mov dword [rsp + 0x50], 0x800100
mov ecx, dword [rsp + 0x50]
mov rdx, qword [rax + 0x88]
xor r9d, r9d
mov r8, r14
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x30], ecx
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x20], 0
call qword [rax + 0x4b8]
mov r12, rax
mov rax, qword [rbx]
test r12, r12
jne 0x1400162ba
mov rax, qword [rax + 0x8c2]
mov r8d, 0x6c
lea rdx, str.HttpSend
lea rcx, str._DEBUG::_s::_d__WinHttpOpenRequest:_Failed____d_n
mov r9d, dword [rax + 0x68]
call sym.DbgPrint
jmp 0x14001676e
cmp dword [rax + 0x9a], 0
je 0x14001630f
mov dword [rsp + 0x50], 0x3300
mov r9d, 4
lea r8, [rsp + 0x50]
mov rcx, r12
mov edx, 0x1f
call qword [rax + 0x4c0]
test eax, eax
jne 0x14001630f
mov rax, qword [rbx]
mov r8d, 0x78
lea rdx, str.HttpSend
lea rcx, str._DEBUG::_s::_d__WinHttpSetOption:_Failed____d_n
mov rax, qword [rax + 0x8c2]
mov r9d, dword [rax + 0x68]
call sym.DbgPrint
xor r15d, r15d
lea rdi, str._DEBUG::_s::_d__Failed_to_add_header:__ls
mov rax, qword [rbx]
mov edx, r15d
mov rcx, qword [rax + 0xae]
mov r13, qword [rcx + rdx*8]
test r13, r13
je 0x140016366
or r8d, 0xffffffff
mov r9d, 0x20000000
mov rdx, r13
mov rcx, r12
call qword [rax + 0x4d8]
test eax, eax
jne 0x140016361
mov r9, r13
mov r8d, 0x84
lea rdx, str.HttpSend
mov rcx, rdi
call sym.DbgPrint
inc r15d
jmp 0x140016319
cmp dword [rax + 0xb6], 0
je 0x140016490
mov rdx, qword [rax + 0xba]
mov r9d, 0x18
mov r8, rsi
mov rcx, r12
mov dword [rsp + 0x58], 3
mov qword [rsp + 0x60], rdx
mov edx, 0x26
call qword [rax + 0x4c0]
test eax, eax
jne 0x1400163c9
mov rax, qword [rbx]
mov r8d, 0x91
lea rdx, str.HttpSend
lea rcx, str._DEBUG::_s::_d__WinHttpSetOption:_Failed____d_n
mov rax, qword [rax + 0x8c2]
mov r9d, dword [rax + 0x68]
call sym.DbgPrint
mov rax, qword [rbx]
mov rcx, qword [rax + 0xc2]
test rcx, rcx
je 0x140016426
mov rsi, qword [rax + 0x4c0]
call sym.StringLengthW
mov rdx, qword [rbx]
mov rcx, r12
mov r9d, eax
mov r8, qword [rdx + 0xc2]
mov edx, 0x1002
call rsi
test eax, eax
jne 0x140016426
mov rax, qword [rbx]
mov r8d, 0x9b
lea rdx, str.HttpSend
lea rcx, str._DEBUG::_s::_d__Failed_to_set_proxy_username__u
mov rax, qword [rax + 0x8c2]
mov r9d, dword [rax + 0x68]
call sym.DbgPrint
mov rax, qword [rbx]
mov rcx, qword [rax + 0xca]
test rcx, rcx
je 0x1400166a1
mov rsi, qword [rax + 0x4c0]
call sym.StringLengthW
mov rdx, qword [rbx]
mov rcx, r12
mov r9d, eax
mov r8, qword [rdx + 0xca]
mov edx, 0x1003
call rsi
test eax, eax
jne 0x1400166a1
mov rax, qword [rbx]
mov r8d, 0xa6
lea rdx, str.HttpSend
lea rcx, str._DEBUG::_s::_d__Failed_to_set_proxy_password__u
mov rax, qword [rax + 0x8c2]
mov r9d, dword [rax + 0x68]
call sym.DbgPrint
jmp 0x1400166a1
cmp dword [rax + 0x18], 0
jne 0x1400166a1
movabs rdi, 0x300000001
mov r9, rsi
lea r15, [rsp + 0x90]
mov qword [rsp + 0x98], 0
mov qword [rsp + 0x90], rdi
mov edi, 1
mov r8, r15
mov rdx, r14
mov qword [rsp + 0xa0], 0
shl rdi, 0x20
mov qword [rsp + 0xa8], rdi
mov rcx, qword [rax + 0x10]
call qword [rax + 0x500]
test eax, eax
je 0x140016514
mov r9, qword [rsp + 0x60]
mov r8d, 0xbd
lea rdx, str.HttpSend
test r9, r9
jne 0x140016655
jmp 0x140016661
mov rax, qword [rbx]
lea rcx, [rsp + 0x70]
call qword [rax + 0x4f8]
test eax, eax
je 0x140016690
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x1400165d0
call sym.StringLengthW
test rax, rax
je 0x1400165d0
mov r9, qword [rsp + 0x80]
mov rax, qword [rsp + 0x88]
mov r8d, 0xcc
lea rdx, str.HttpSend
lea rcx, str._DEBUG::_s::_d__Using_IE_proxy__ls_n
mov dword [rsp + 0x58], 3
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x68], rax
call sym.DbgPrint
mov rdi, qword [rbx]
mov edx, 0x18
mov ecx, 0x40
mov qword [rdi + 0x24], 0x18
call qword [rdi + 0x3a8]
mov rdx, qword [rbx]
mov qword [rdi + 0x1c], rax
mov rax, qword [rdx + 0x1c]
mov rcx, qword [rdx + 0x24]
mov rdi, rax
rep movsb byte [rdi], byte [rsi]
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], 0
jmp 0x140016690
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140016690
call sym.StringLengthW
test rax, rax
je 0x140016690
mov r9, qword [rsp + 0x78]
lea r10, str.HttpSend
mov r8d, 0xdb
lea rcx, str._DEBUG::_s::_d__Trying_to_discover_the_proxy_config_via_the_config_url__ls_n
mov qword [rsp + 0x90], 2
mov rdx, r10
mov qword [rsp + 0x98], r9
call sym.DbgPrint
mov rax, qword [rbx]
mov r9, rsi
mov r8, r15
mov rdx, r14
mov rcx, qword [rax + 0x10]
call qword [rax + 0x500]
test eax, eax
je 0x140016690
mov r9, qword [rsp + 0x60]
test r9, r9
je 0x140016661
lea r10, str.HttpSend
mov r8d, 0xdf
mov rdx, r10
lea rcx, str._DEBUG::_s::_d__Using_proxy__ls_n
call sym.DbgPrint
mov rdi, qword [rbx]
mov edx, 0x18
mov ecx, 0x40
mov qword [rdi + 0x24], 0x18
call qword [rdi + 0x3a8]
mov qword [rdi + 0x1c], rax
mov rdx, qword [rbx]
mov rax, qword [rdx + 0x1c]
mov rcx, qword [rdx + 0x24]
mov rdi, rax
rep movsb byte [rdi], byte [rsi]
mov rax, qword [0x14002d650]
mov rax, qword [rax]
mov dword [rax + 0x18], 1
mov r14, qword [0x14002d650]
mov rax, qword [r14]
mov r8, qword [rax + 0x1c]
test r8, r8
je 0x1400166f1
mov r9d, dword [rax + 0x24]
mov edx, 0x26
mov rcx, r12
call qword [rax + 0x4c0]
test eax, eax
jne 0x1400166f1
mov rax, qword [r14]
mov r8d, 0xf2
lea rdx, str.HttpSend
lea rcx, str._DEBUG::_s::_d__WinHttpSetOption:_Failed____d_n
mov rax, qword [rax + 0x8c2]
mov r9d, dword [rax + 0x68]
call sym.DbgPrint
mov eax, dword [rbp + 8]
mov r10, qword [rbx]
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x30], 0
mov rcx, r12
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], eax
mov r9, qword [rbp]
call qword [r10 + 0x4d0]
test eax, eax
mov r15d, eax
mov rax, qword [rbx]
je 0x140016824
xor edx, edx
mov rcx, r12
call qword [rax + 0x4e0]
mov r15d, eax
test eax, eax
je 0x140016858
mov rcx, r12
call sym.HttpQueryStatus
cmp eax, 0xc8
je 0x140016776
lea r9, str.HttpQueryStatus_Failed:_Is_not_HTTP_STATUS_OK__200_
mov r8d, 0xfb
lea rdx, str.HttpSend
lea rcx, [0x14002b610]
call sym.printf.constprop.0_14
xor r15d, r15d
jmp 0x140016858
xor r15d, r15d
cmp qword [rsp + 0x508], 0
je 0x140016858
xor edi, edi
lea r15, [rsp + 0x54]
lea rbp, [rsp + 0xb0]
mov rax, qword [r14]
mov r9, r15
mov r8d, 0x400
mov rdx, rbp
mov rcx, r12
call qword [rax + 0x4e8]
mov ebx, eax
test eax, eax
je 0x14001680e
mov edx, dword [rsp + 0x54]
mov rax, qword [r14]
test edx, edx
je 0x14001680e
test r13, r13
jne 0x1400167d2
mov ecx, 0x40
call qword [rax + 0x3a8]
jmp 0x1400167e4
add rdx, rdi
mov r8d, 0x42
mov rcx, r13
call qword [rax + 0x3b8]
mov ecx, dword [rsp + 0x54]
mov r13, rax
lea rax, [rax + rdi]
mov rsi, rbp
lea rdx, [rcx + rdi]
mov rdi, rax
xor eax, eax
rep movsb byte [rdi], byte [rsi]
mov rdi, rbp
mov ecx, 0x400
rep stosb byte [rdi], al
dec ebx
mov rdi, rdx
je 0x140016797
mov rax, qword [rsp + 0x508]
mov r15d, 1
mov dword [rax + 8], edi
mov qword [rax], r13
jmp 0x140016858
mov rdx, qword [rax + 0x8c2]
mov r9d, dword [rdx + 0x68]
cmp r9d, 0x2efd
jne 0x14001683f
mov dword [rax + 0x48], 0
mov r8d, 0x123
lea rdx, str.HttpSend
lea rcx, str._DEBUG::_s::_d__HTTP_Error:__d_n
call sym.DbgPrint
mov rbx, qword [0x14002d650]
mov rcx, qword [rsp + 0x48]
mov rax, qword [rbx]
call qword [rax + 0x4c8]
test r12, r12
je 0x14001687e
mov rax, qword [rbx]
mov rcx, r12
call qword [rax + 0x4c8]
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x14001689b
mov rax, qword [0x14002d650]
mov rax, qword [rax]
call qword [rax + 0x4a0]
mov rcx, qword [rsp + 0x88]
test rcx, rcx
je 0x1400168b8
mov rax, qword [0x14002d650]
mov rax, qword [rax]
call qword [rax + 0x4a0]
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x1400168d2
mov rax, qword [0x14002d650]
mov rax, qword [rax]
call qword [rax + 0x4a0]
mov ecx, 1
call sym.TokenImpersonate
test r15d, r15d
jne 0x1400168f8
mov rax, qword [0x14002d650]
mov rbx, qword [rax]
mov rcx, qword [rbx + 0x74]
call sym.HostFailure
mov qword [rbx + 0x74], rax
add rsp, 0x4b8
mov eax, r15d
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret