Function at 0x14003e170
Capabilities:
Check http status code
Initialize winhttp library
Prepare http request
Read http header
Receive http response

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 7]
sub rsp, 0x100
mov rsi, r9
mov rdi, r8
mov rax, rdx
mov rbx, rcx
xor edx, edx
mov dword [rsp + 0x44], edx
mov r12d, edx
mov dword [rbp + 0x3f], edx
mov dword [rbp - 0x4d], edx
mov r15d, edx
mov dword [rsp + 0x40], edx
mov rcx, qword [rbp + 0x87]
mov dword [rcx], edx
cmp qword [rax + 0x18], 8
jb 0x14003e1c9
mov rax, qword [rax]
mov dword [rsp + 0x20], edx
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 4]
mov rcx, rax
call qword [sym.imp.WINHTTP.dll_WinHttpOpen]
mov r13, rax
mov qword [rbp - 0x39], rax
test rax, rax
je 0x14003e290
movzx r8d, word [rbp + 0x57]
mov eax, 0x1bb
movzx r14d, byte [rbp + 0x5f]
test r14b, r14b
cmovne r8w, ax
cmp qword [rdi + 0x18], 8
jb 0x14003e211
mov rdi, qword [rdi]
xor r9d, r9d
mov rdx, rdi
mov rcx, r13
call qword [sym.imp.WINHTTP.dll_WinHttpConnect]
mov rdi, rax
mov qword [rbp - 0x41], rax
test rax, rax
je 0x14003e287
mov ecx, 0x100
mov eax, 0x800000
test r14b, r14b
cmovne ecx, eax
cmp qword [rsi + 0x18], 8
jb 0x14003e246
mov rsi, qword [rsi]
cmp qword [rbx + 0x18], 8
jb 0x14003e250
mov rbx, qword [rbx]
mov dword [rsp + 0x30], ecx
xor eax, eax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.WINHTTP.dll_WinHttpOpenRequest]
mov rsi, rax
mov qword [rbp - 0x49], rax
test rax, rax
jne 0x14003e2b3
mov rcx, rdi
call qword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
mov rcx, r13
call qword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
xor al, al
lea r11, [rsp + 0x100]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov r13, qword [rbp + 0x8f]
mov r14d, r12d
mov rbx, qword [rbp + 0x87]
test r14d, r14d
je 0x14003e317
mov rcx, qword [rbp + 0x97]
cmp qword [rcx + 0x10], 0
je 0x14003e317
mov rdx, qword [rbp + 0x9f]
mov rax, rdx
cmp qword [rdx + 0x18], 8
jb 0x14003e2eb
mov rax, qword [rdx]
mov r9, rcx
cmp qword [rcx + 0x18], 8
jb 0x14003e2f8
mov r9, qword [rcx]
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rax
mov r8d, r14d
mov edx, 1
mov rcx, rsi
call qword [sym.imp.WINHTTP.dll_WinHttpSetCredentials]
mov r8, qword [rbp + 0x67]
mov rdi, qword [r8 + 0x10]
mov rdx, qword [rbp + 0x6f]
mov ecx, dword [rdx + 0x10]
mov rax, qword [rdx + 0x18]
mov r9, rdx
test rdi, rdi
jne 0x14003e342
cmp rax, 0x10
jb 0x14003e33b
mov r9, qword [rdx]
xor r8d, r8d
xor edx, edx
jmp 0x14003e35b
cmp rax, 0x10
jb 0x14003e34b
mov r9, qword [rdx]
mov rdx, r8
cmp qword [r8 + 0x18], 8
jb 0x14003e358
mov rdx, qword [r8]
mov r8d, edi
xor eax, eax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], ecx
mov rcx, rsi
call qword [sym.imp.WINHTTP.dll_WinHttpSendRequest]
mov edi, eax
test eax, eax
je 0x14003e38a
xor edx, edx
mov rcx, rsi
call qword [sym.imp.WINHTTP.dll_WinHttpReceiveResponse]
mov edi, eax
test eax, eax
jne 0x14003e3a3
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x2f00
je 0x14003e2c4
test edi, edi
je 0x14003eb46
mov dword [rbp + 0x3f], 4
xor r14d, r14d
mov qword [rsp + 0x28], r14
lea rax, [rbp + 0x3f]
mov qword [rsp + 0x20], rax
mov r9, rbx
xor r8d, r8d
mov edx, 0x20000013
mov rcx, rsi
call qword [sym.imp.WINHTTP.dll_WinHttpQueryHeaders]
mov edi, eax
mov dword [rsp + 0x6c], eax
mov qword [rsp + 0x28], r14
lea rax, [rbp + 0x3f]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r14 + 0x16]
mov rcx, rsi
call qword [sym.imp.WINHTTP.dll_WinHttpQueryHeaders]
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x14003e4b4
mov ecx, dword [rbp + 0x3f]
inc ecx
mov rbx, qword [rbp + 0x7f]
mov r8, qword [rbx + 0x10]
mov rdi, qword [rbx + 0x18]
cmp rcx, r8
ja 0x14003e432
mov rax, rbx
cmp rdi, 8
jb 0x14003e427
mov rax, qword [rbx]
mov qword [rbx + 0x10], rcx
mov word [rax + rcx*2], r14w
jmp 0x14003e47c
mov rdx, rcx
sub rdx, r8
mov rax, rdi
sub rax, r8
cmp rdx, rax
ja 0x14003e471
mov qword [rbx + 0x10], rcx
mov r9, rbx
cmp rdi, 8
jb 0x14003e453
mov r9, qword [rbx]
lea rdi, [r9 + r8*2]
test rdx, rdx
je 0x14003e466
movzx eax, r14w
mov rcx, rdx
rep stosw word [rdi], ax
lea rax, [r8 + rdx]
mov word [r9 + rax*2], r14w
jmp 0x14003e47c
mov r9, rdx
mov rcx, rbx
call fcn.14006a0d0
mov r9, rbx
cmp qword [rbx + 0x18], 8
jb 0x14003e489
mov r9, qword [rbx]
mov qword [rsp + 0x28], r14
lea rax, [rbp + 0x3f]
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea edx, [r8 + 0x16]
mov rcx, rsi
call qword [sym.imp.WINHTTP.dll_WinHttpQueryHeaders]
mov edi, eax
mov dword [rsp + 0x6c], eax
mov rbx, qword [rbp + 0x87]
test edi, edi
je 0x14003eb46
mov edi, dword [rbx]
mov eax, edi
sub eax, 0xc8
je 0x14003e747
sub eax, 0xc9
je 0x14003e68d
cmp eax, 6
je 0x14003e615
lea r9, [rbp - 0x57]
nop dword [rax]
nop word [rax + rax]
sub r9, 2
mov eax, 0xcccccccd
mul edi
shr edx, 3
movzx eax, dx
shl ax, 2
lea ecx, [rax + rdx]
add cx, cx
sub di, cx
add di, 0x30
mov word [r9], di
mov edi, edx
test edx, edx
jne 0x14003e4f0
mov qword [rsp + 0x48], r14
mov rdx, r14
mov qword [rsp + 0x58], rdx
mov edi, 7
mov qword [rsp + 0x60], rdi
mov word [rsp + 0x48], r14w
lea rax, [rbp - 0x57]
cmp r9, rax
je 0x14003e563
lea r8, [rbp - 0x57]
sub r8, r9
sar r8, 1
mov rdx, r9
lea rcx, [rsp + 0x48]
call fcn.140068020
mov rdi, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
or dword [rsp + 0x44], 0x30
lea r9, [rsp + 0x48]
mov rbx, qword [rsp + 0x48]
cmp rdi, 8
cmovae r9, rbx
mov rcx, qword [r13 + 0x10]
mov r8, qword [r13 + 0x18]
mov rax, r8
sub rax, rcx
cmp rdx, rax
ja 0x14003e5bf
lea r14, [rdx + rcx]
mov qword [r13 + 0x10], r14
mov rsi, r13
cmp r8, 8
jb 0x14003e5a2
mov rsi, qword [r13]
lea rcx, [rsi + rcx*2]
lea r8, [rdx + rdx]
mov rdx, r9
call sub.VCRUNTIME140.dll_memmove
xor eax, eax
mov word [rsi + r14*2], ax
mov rsi, qword [rbp - 0x49]
jmp 0x14003e5d6
mov qword [rsp + 0x20], rdx
mov rcx, r13
call fcn.14006a600
mov rdi, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x48]
cmp rdi, 8
jb 0x14003eb35
lea rdx, [rdi*2 + 2]
mov rax, rbx
cmp rdx, 0x1000
jb 0x14003e60d
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003eb7f
mov rcx, rbx
jmp 0x14003eb30
lea r9, [rsp + 0x70]
lea r8, [rbp - 0x51]
lea rdx, [rsp + 0x68]
mov rcx, rsi
call qword [sym.imp.WINHTTP.dll_WinHttpQueryAuthSchemes]
mov edi, eax
test eax, eax
je 0x14003e67b
mov eax, dword [rsp + 0x68]
test al, 0x10
je 0x14003e644
mov dword [rsp + 0x40], 0x10
jmp 0x14003e67b
test al, 2
je 0x14003e652
mov dword [rsp + 0x40], 2
jmp 0x14003e67b
test al, 4
je 0x14003e660
mov dword [rsp + 0x40], 4
jmp 0x14003e67b
test al, 8
je 0x14003e66e
mov dword [rsp + 0x40], 8
jmp 0x14003e67b
movzx r14d, al
and r14d, 1
mov dword [rsp + 0x40], r14d
cmp r12d, 0x197
jne 0x14003eb46
jmp 0x14003eb40
lea r9, [rsp + 0x70]
lea r8, [rbp - 0x51]
lea rdx, [rsp + 0x68]
mov rcx, rsi
call qword [sym.imp.WINHTTP.dll_WinHttpQueryAuthSchemes]
mov edi, eax
test eax, eax
je 0x14003e735
mov eax, dword [rsp + 0x68]
test al, 0x10
je 0x14003e6be
mov r8d, 0x10
jmp 0x14003e6ec
test al, 2
je 0x14003e6ca
mov r8d, 2
jmp 0x14003e6ec
test al, 4
je 0x14003e6d6
mov r8d, 4
jmp 0x14003e6ec
test al, 8
je 0x14003e6e2
mov r8d, 8
jmp 0x14003e6ec
test al, 1
je 0x14003e72f
mov r8d, 1
mov rcx, qword [rbp + 0xaf]
mov rax, rcx
cmp qword [rcx + 0x18], 8
jb 0x14003e700
mov rax, qword [rcx]
mov rcx, qword [rbp + 0xa7]
mov r9, rcx
cmp qword [rcx + 0x18], 8
jb 0x14003e714
mov r9, qword [rcx]
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rax
mov edx, dword [rsp + 0x70]
mov rcx, rsi
call qword [sym.imp.WINHTTP.dll_WinHttpSetCredentials]
mov edi, eax
jmp 0x14003e735
mov r15d, 1
cmp r12d, 0x191
jne 0x14003eb46
jmp 0x14003eb40
xor r12d, r12d
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], 0xf
mov byte [rsp + 0x48], r12b
xor r8d, r8d
lea rdx, [0x1400723d9]
mov r14, qword [rbp + 0x77]
mov rcx, r14
call fcn.140068340
nop dword [rax + rax]
mov dword [rbp + 0x3f], r12d
lea rdx, [rbp + 0x3f]
mov rcx, rsi
call qword [sym.imp.WINHTTP.dll_WinHttpQueryDataAvailable]
test eax, eax
jne 0x14003e8d9
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
lea r9, [rbp - 7]
nop word [rax + rax]
add r9, 0xfffffffffffffffe
mov eax, 0xcccccccd
mul edi
shr edx, 3
movzx eax, dx
shl ax, 2
lea ecx, [rax + rdx]
add cx, cx
sub di, cx
add di, 0x30
mov word [r9], di
mov edi, edx
test edx, edx
jne 0x14003e7b0
mov qword [rsp + 0x78], r12
mov rdx, r12
mov qword [rbp - 0x71], rdx
mov edi, 7
mov qword [rbp - 0x69], rdi
mov word [rsp + 0x78], r12w
lea rax, [rbp - 7]
cmp r9, rax
je 0x14003e81f
lea r8, [rbp - 7]
sub r8, r9
sar r8, 1
mov rdx, r9
lea rcx, [rsp + 0x78]
call fcn.140068020
mov rdi, qword [rbp - 0x69]
mov rdx, qword [rbp - 0x71]
mov r15d, dword [rsp + 0x44]
or r15d, 3
mov dword [rsp + 0x44], r15d
lea r9, [rsp + 0x78]
mov rbx, qword [rsp + 0x78]
cmp rdi, 8
cmovae r9, rbx
mov rcx, qword [r13 + 0x10]
mov r8, qword [r13 + 0x18]
mov rax, r8
sub rax, rcx
cmp rdx, rax
ja 0x14003e886
lea r14, [rdx + rcx]
mov qword [r13 + 0x10], r14
mov rsi, r13
cmp r8, 8
jb 0x14003e867
mov rsi, qword [r13]
lea rcx, [rsi + rcx*2]
lea r8, [rdx + rdx]
mov rdx, r9
call sub.VCRUNTIME140.dll_memmove
mov word [rsi + r14*2], r12w
mov rsi, qword [rbp - 0x49]
mov r14, qword [rbp + 0x77]
jmp 0x14003e89c
mov qword [rsp + 0x20], rdx
mov rcx, r13
call fcn.14006a600
mov rdi, qword [rbp - 0x69]
mov rbx, qword [rsp + 0x78]
cmp rdi, 8
jb 0x14003e8de
lea rdx, [rdi*2 + 2]
mov rax, rbx
cmp rdx, 0x1000
jb 0x14003e8cf
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003eb86
mov rcx, rbx
call fcn.14006be08
jmp 0x14003e8de
mov r15d, dword [rsp + 0x44]
cmp dword [rbp + 0x3f], 0
je 0x14003eafc
xor r8d, r8d
lea rdx, [0x1400723d9]
lea rcx, [rsp + 0x48]
call fcn.140068340
mov ecx, dword [rbp + 0x3f]
mov rdx, qword [rsp + 0x58]
cmp rcx, rdx
ja 0x14003e925
lea rax, [rsp + 0x48]
cmp qword [rsp + 0x60], 0x10
cmovae rax, qword [rsp + 0x48]
mov qword [rsp + 0x58], rcx
mov byte [rax + rcx], 0
jmp 0x14003e976
mov rbx, rcx
sub rbx, rdx
mov rdi, qword [rsp + 0x60]
mov rax, rdi
sub rax, rdx
cmp rbx, rax
ja 0x14003e966
mov qword [rsp + 0x58], rcx
lea rax, [rsp + 0x48]
cmp rdi, 0x10
cmovae rax, qword [rsp + 0x48]
lea rdi, [rdx + rax]
mov r8, rbx
xor edx, edx
mov rcx, rdi
call sub.VCRUNTIME140.dll_memset
mov byte [rdi + rbx], 0
jmp 0x14003e976
mov r9, rbx
mov rdx, rbx
lea rcx, [rsp + 0x48]
call fcn.14006a3f0
lea rcx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0x10
cmovae rcx, qword [rsp + 0x48]
mov r8d, dword [rbp + 0x3f]
xor edx, edx
call sub.VCRUNTIME140.dll_memset
lea rdx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0x10
cmovae rdx, qword [rsp + 0x48]
lea r9, [rbp - 0x4d]
mov r8d, dword [rbp + 0x3f]
mov rcx, rsi
call qword [sym.imp.WINHTTP.dll_WinHttpReadData]
test eax, eax
jne 0x14003eb5c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea r9, [rbp - 7]
nop dword [rax + rax]
add r9, 0xfffffffffffffffe
mov eax, 0xcccccccd
mul ecx
shr edx, 3
movzx eax, dx
shl ax, 2
lea edi, [rax + rdx]
add di, di
sub cx, di
add cx, 0x30
mov word [r9], cx
mov ecx, edx
test edx, edx
jne 0x14003e9d0
mov qword [rsp + 0x78], r12
mov rdx, r12
mov qword [rbp - 0x71], rdx
mov edi, 7
mov qword [rbp - 0x69], rdi
mov word [rsp + 0x78], r12w
lea rax, [rbp - 7]
cmp r9, rax
je 0x14003ea3f
lea r8, [rbp - 7]
sub r8, r9
sar r8, 1
mov rdx, r9
lea rcx, [rsp + 0x78]
call fcn.140068020
mov rdi, qword [rbp - 0x69]
mov rdx, qword [rbp - 0x71]
or r15d, 0xc
mov dword [rsp + 0x44], r15d
lea r9, [rsp + 0x78]
mov rbx, qword [rsp + 0x78]
cmp rdi, 8
cmovae r9, rbx
mov rcx, qword [r13 + 0x10]
mov r8, qword [r13 + 0x18]
mov rax, r8
sub rax, rcx
cmp rdx, rax
ja 0x14003ea9d
lea r14, [rdx + rcx]
mov qword [r13 + 0x10], r14
mov rsi, r13
cmp r8, 8
jb 0x14003ea82
mov rsi, qword [r13]
lea rcx, [rsi + rcx*2]
lea r8, [rdx + rdx]
mov rdx, r9
call sub.VCRUNTIME140.dll_memmove
mov word [rsi + r14*2], r12w
mov rsi, qword [rbp - 0x49]
jmp 0x14003eab3
mov qword [rsp + 0x20], rdx
mov rcx, r13
call fcn.14006a600
mov rdi, qword [rbp - 0x69]
mov rbx, qword [rsp + 0x78]
cmp rdi, 8
jb 0x14003eaee
lea rdx, [rdi*2 + 2]
mov rax, rbx
cmp rdx, 0x1000
jb 0x14003eae6
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003eb86
mov rcx, rbx
call fcn.14006be08
mov r14, qword [rbp + 0x77]
cmp dword [rbp + 0x3f], 0
ja 0x14003e780
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x14003eb35
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003eb30
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003eb8d
call fcn.14006be08
mov rbx, qword [rbp + 0x87]
mov edi, dword [rsp + 0x6c]
mov r15d, 1
mov r12d, dword [rbx]
test edi, edi
je 0x14003eb94
test r15d, r15d
jne 0x14003eb94
mov r14d, dword [rsp + 0x40]
jmp 0x14003e2c4
lea rdx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0x10
cmovae rdx, qword [rsp + 0x48]
mov r8, qword [rsp + 0x58]
mov rcx, r14
call fcn.140067cf0
jmp 0x14003eaf2
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rsi
call qword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
mov rcx, qword [rbp - 0x41]
call qword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
mov rcx, qword [rbp - 0x39]
call qword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
test edi, edi
je 0x14003e290
mov al, 1
jmp 0x14003e292