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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x48]
sub rsp, 0x148
mov rax, qword [0x7ff7b50d0588]
xor rax, rsp
mov qword [rbp + 0x30], rax
mov rsi, r9
mov rbx, r8
mov rax, rdx
mov rdi, rcx
mov rcx, qword [rbp + 0xc0]
mov qword [rbp - 0x68], rcx
mov rcx, qword [rbp + 0xc8]
mov qword [rbp - 0x60], rcx
mov rcx, qword [rbp + 0xd0]
mov qword [rbp - 0x80], rcx
mov rdx, qword [rbp + 0xd8]
mov qword [rbp - 0x58], rdx
mov r8, qword [rbp + 0xe0]
mov qword [rsp + 0x70], r8
mov rcx, qword [rbp + 0xe8]
mov qword [rsp + 0x68], rcx
mov rdx, qword [rbp + 0xf0]
mov qword [rbp - 0x78], rdx
mov rcx, qword [rbp + 0xf8]
mov qword [rbp - 0x70], rcx
mov rdx, qword [rbp + 0x100]
mov qword [rbp - 0x48], rdx
mov rcx, qword [rbp + 0x108]
mov qword [rbp - 0x50], rcx
xor ecx, ecx
mov r13d, ecx
mov dword [rbp - 0xc], ecx
mov r12d, ecx
mov dword [rbp - 0x38], ecx
mov dword [rbp - 0xc], ecx
mov r15d, ecx
mov dword [rsp + 0x40], ecx
mov dword [r8], ecx
cmp qword [rax + 0x18], 8
jb 0x7ff7b50b1bf8
mov rax, qword [rax]
mov dword [rsp + 0x20], ecx
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 4]
mov rcx, rax
call qword [sym.imp.winhttp.dll_WinHttpOpen]
mov qword [rsp + 0x78], rax
test rax, rax
je 0x7ff7b50b1cc1
movzx r8d, word [rbp + 0xb0]
mov ecx, 0x1bb
movzx r14d, byte [rbp + 0xb8]
test r14b, r14b
cmovne r8w, cx
cmp qword [rbx + 0x18], 8
jb 0x7ff7b50b1c44
mov rbx, qword [rbx]
xor r9d, r9d
mov rdx, rbx
mov rcx, rax
call qword [sym.imp.winhttp.dll_WinHttpConnect]
mov rbx, rax
mov qword [rbp - 0x40], rax
test rax, rax
je 0x7ff7b50b1cb6
mov ecx, 0x100
mov eax, 0x800000
test r14b, r14b
cmovne ecx, eax
cmp qword [rsi + 0x18], 8
jb 0x7ff7b50b1c79
mov rsi, qword [rsi]
cmp qword [rdi + 0x18], 8
jb 0x7ff7b50b1c83
mov rdi, qword [rdi]
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, rdi
mov rcx, rbx
call qword [sym.imp.winhttp.dll_WinHttpOpenRequest]
mov r14, rax
test rax, rax
jne 0x7ff7b50b1ce3
mov rcx, rbx
call qword [sym.imp.winhttp.dll_WinHttpCloseHandle]
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.winhttp.dll_WinHttpCloseHandle]
xor al, al
mov rcx, qword [rbp + 0x30]
xor rcx, rsp
call fcn.7ff7b50c16f0
add rsp, 0x148
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ebx, r12d
mov rdi, qword [rsp + 0x68]
nop dword [rax + rax]
test ebx, ebx
je 0x7ff7b50b1d3a
mov rcx, qword [rbp - 0x78]
cmp qword [rcx + 0x10], 0
je 0x7ff7b50b1d3a
mov rdx, qword [rbp - 0x70]
mov rax, rdx
cmp qword [rdx + 0x18], 8
jb 0x7ff7b50b1d10
mov rax, qword [rdx]
mov r9, rcx
cmp qword [rcx + 0x18], 8
jb 0x7ff7b50b1d1d
mov r9, qword [rcx]
xor esi, esi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rax
mov r8d, ebx
lea edx, [rsi + 1]
mov rcx, r14
call qword [sym.imp.winhttp.dll_WinHttpSetCredentials]
jmp 0x7ff7b50b1d3c
xor esi, esi
mov r10, qword [rbp - 0x68]
mov r8, qword [r10 + 0x10]
mov rdx, qword [rbp - 0x60]
mov ecx, dword [rdx + 0x10]
mov rax, qword [rdx + 0x18]
mov r9, rdx
test r8, r8
jne 0x7ff7b50b1d67
cmp rax, 0x10
jb 0x7ff7b50b1d60
mov r9, qword [rdx]
xor r8d, r8d
xor edx, edx
jmp 0x7ff7b50b1d7d
cmp rax, 0x10
jb 0x7ff7b50b1d70
mov r9, qword [rdx]
mov rdx, r10
cmp qword [r10 + 0x18], 8
jb 0x7ff7b50b1d7d
mov rdx, qword [r10]
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], ecx
mov rcx, r14
call qword [sym.imp.winhttp.dll_WinHttpSendRequest]
mov esi, eax
test eax, eax
je 0x7ff7b50b1daa
xor edx, edx
mov rcx, r14
call qword [sym.imp.winhttp.dll_WinHttpReceiveResponse]
mov esi, eax
test eax, eax
jne 0x7ff7b50b1dc3
call qword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x2f00
je 0x7ff7b50b1cf0
test esi, esi
je 0x7ff7b50b238f
mov dword [rbp - 0x38], 4
mov qword [rsp + 0x28], 0
lea rax, [rbp - 0x38]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x70]
xor r8d, r8d
mov edx, 0x20000013
mov rcx, r14
call qword [sym.imp.winhttp.dll_WinHttpQueryHeaders]
mov esi, eax
mov qword [rsp + 0x28], 0
lea rax, [rbp - 0x38]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x16]
mov rcx, r14
call qword [sym.imp.winhttp.dll_WinHttpQueryHeaders]
call qword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x7a
jne 0x7ff7b50b1e69
xor r8d, r8d
mov edx, dword [rbp - 0x38]
inc edx
mov rsi, qword [rbp - 0x58]
mov rcx, rsi
call fcn.7ff7b50bb360
mov r9, rsi
cmp qword [rsi + 0x18], 8
jb 0x7ff7b50b1e45
mov r9, qword [rsi]
mov qword [rsp + 0x28], 0
lea rax, [rbp - 0x38]
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea edx, [r8 + 0x16]
mov rcx, r14
call qword [sym.imp.winhttp.dll_WinHttpQueryHeaders]
mov esi, eax
test esi, esi
je 0x7ff7b50b238f
mov rax, qword [rsp + 0x70]
mov edx, dword [rax]
mov eax, edx
sub eax, 0xc8
je 0x7ff7b50b201f
sub eax, 0xc9
je 0x7ff7b50b1f6b
cmp eax, 6
je 0x7ff7b50b1f05
lea rcx, [rsp + 0x48]
call fcn.7ff7b50bf620
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 8
jb 0x7ff7b50b1eae
mov rax, qword [rax]
mov rdx, rax
mov rcx, rdi
call fcn.7ff7b509fa30
nop
mov rdx, qword [rsp + 0x60]
cmp rdx, 8
jb 0x7ff7b50b2389
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff7b50b1efb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x7ff7b50b23d1
call fcn.7ff7b50c1294
jmp 0x7ff7b50b2389
lea r9, [rbp - 0x10]
lea r8, [rbp - 8]
lea rdx, [rbp - 0x34]
mov rcx, r14
call qword [sym.imp.winhttp.dll_WinHttpQueryAuthSchemes]
mov esi, eax
test eax, eax
je 0x7ff7b50b1f59
mov eax, dword [rbp - 0x34]
test al, 0x10
je 0x7ff7b50b1f2e
mov ebx, 0x10
jmp 0x7ff7b50b1f55
test al, 2
je 0x7ff7b50b1f39
mov ebx, 2
jmp 0x7ff7b50b1f55
test al, 4
je 0x7ff7b50b1f44
mov ebx, 4
jmp 0x7ff7b50b1f55
test al, 8
je 0x7ff7b50b1f4f
mov ebx, 8
jmp 0x7ff7b50b1f55
movzx ebx, al
and ebx, 1
mov dword [rsp + 0x40], ebx
cmp r12d, 0x197
jne 0x7ff7b50b238f
jmp 0x7ff7b50b2389
lea r9, [rbp - 0x10]
lea r8, [rbp - 8]
lea rdx, [rbp - 0x34]
mov rcx, r14
call qword [sym.imp.winhttp.dll_WinHttpQueryAuthSchemes]
mov esi, eax
test eax, eax
je 0x7ff7b50b200d
mov eax, dword [rbp - 0x34]
test al, 0x10
je 0x7ff7b50b1f99
mov r8d, 0x10
jmp 0x7ff7b50b1fc7
test al, 2
je 0x7ff7b50b1fa5
mov r8d, 2
jmp 0x7ff7b50b1fc7
test al, 4
je 0x7ff7b50b1fb1
mov r8d, 4
jmp 0x7ff7b50b1fc7
test al, 8
je 0x7ff7b50b1fbd
mov r8d, 8
jmp 0x7ff7b50b1fc7
test al, 1
je 0x7ff7b50b2007
mov r8d, 1
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp qword [rcx + 0x18], 8
jb 0x7ff7b50b1fd8
mov rax, qword [rcx]
mov rcx, qword [rbp - 0x48]
mov r9, rcx
cmp qword [rcx + 0x18], 8
jb 0x7ff7b50b1fe9
mov r9, qword [rcx]
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rax
mov edx, dword [rbp - 0x10]
mov rcx, r14
call qword [sym.imp.winhttp.dll_WinHttpSetCredentials]
mov esi, eax
jmp 0x7ff7b50b200d
mov r15d, 1
cmp r12d, 0x191
jne 0x7ff7b50b238f
jmp 0x7ff7b50b2389
xor edi, edi
mov qword [rbp - 0x30], rdi
mov qword [rbp - 0x20], rdi
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], dil
xor r8d, r8d
lea rdx, [0x7ff7b50c5bfb]
mov rbx, qword [rbp - 0x80]
mov rcx, rbx
call fcn.7ff7b509fc20
nop dword [rax + rax]
mov dword [rbp - 0x38], edi
lea rdx, [rbp - 0x38]
mov rcx, r14
call qword [sym.imp.winhttp.dll_WinHttpQueryDataAvailable]
test eax, eax
jne 0x7ff7b50b215b
call qword [sym.imp.kernel32.dll_GetLastError]
mov r8d, eax
lea r9, [rbp + 0x2a]
nop word [rax + rax]
add r9, 0xfffffffffffffffe
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dx
shl ax, 2
lea ecx, [rax + rdx]
add cx, cx
sub r8w, cx
add r8w, 0x30
mov word [r9], r8w
mov r8d, edx
test edx, edx
jne 0x7ff7b50b2080
mov qword [rsp + 0x48], rdi
mov r8, rdi
mov qword [rsp + 0x58], rdi
mov eax, 7
mov qword [rsp + 0x60], rax
mov word [rsp + 0x48], di
lea rcx, [rbp + 0x2a]
cmp r9, rcx
je 0x7ff7b50b20f6
lea r8, [rbp + 0x2a]
sub r8, r9
sar r8, 1
mov rdx, r9
lea rcx, [rsp + 0x48]
call fcn.7ff7b509fef0
mov rax, qword [rsp + 0x60]
mov r8, qword [rsp + 0x58]
or r13d, 3
lea rdx, [rsp + 0x48]
cmp rax, 8
cmovae rdx, qword [rsp + 0x48]
mov r15, qword [rsp + 0x68]
mov rcx, r15
call fcn.7ff7b509fa30
nop
mov rdx, qword [rsp + 0x60]
cmp rdx, 8
jb 0x7ff7b50b2160
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff7b50b2154
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x7ff7b50b23d8
call fcn.7ff7b50c1294
jmp 0x7ff7b50b2160
mov r15, qword [rsp + 0x68]
cmp dword [rbp - 0x38], 0
je 0x7ff7b50b2349
xor r8d, r8d
lea rdx, [0x7ff7b50c5bfb]
lea rcx, [rbp - 0x30]
call fcn.7ff7b509fc20
mov ecx, dword [rbp - 0x38]
mov rdx, qword [rbp - 0x20]
cmp rcx, rdx
ja 0x7ff7b50b21a1
lea rax, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rax, qword [rbp - 0x30]
mov qword [rbp - 0x20], rcx
mov byte [rax + rcx], 0
jmp 0x7ff7b50b21fa
mov rdi, rcx
sub rdi, rdx
mov r8, qword [rbp - 0x18]
mov rax, r8
sub rax, rdx
cmp rdi, rax
ja 0x7ff7b50b21e1
mov qword [rbp - 0x20], rcx
lea rbx, [rbp - 0x30]
cmp r8, 0x10
cmovae rbx, qword [rbp - 0x30]
add rbx, rdx
mov r8, rdi
xor edx, edx
mov rcx, rbx
call sub.VCRUNTIME140.dll_memset
mov byte [rdi + rbx], 0
mov rbx, qword [rbp - 0x80]
jmp 0x7ff7b50b21f8
mov byte [rsp + 0x20], 0
mov r9, rdi
xor r8d, r8d
mov rdx, rdi
lea rcx, [rbp - 0x30]
call fcn.7ff7b5093ea0
xor edi, edi
lea rcx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rcx, qword [rbp - 0x30]
mov r8d, dword [rbp - 0x38]
xor edx, edx
call sub.VCRUNTIME140.dll_memset
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
lea r9, [rbp - 0xc]
mov r8d, dword [rbp - 0x38]
mov rcx, r14
call qword [sym.imp.winhttp.dll_WinHttpReadData]
test eax, eax
jne 0x7ff7b50b2325
call qword [sym.imp.kernel32.dll_GetLastError]
mov ecx, eax
lea r9, [rbp + 0x2a]
nop word [rax + rax]
add r9, 0xfffffffffffffffe
mov eax, 0xcccccccd
mul ecx
shr edx, 3
movzx eax, dx
shl ax, 2
lea r8d, [rax + rdx]
add r8w, r8w
sub cx, r8w
add cx, 0x30
mov word [r9], cx
mov ecx, edx
test edx, edx
jne 0x7ff7b50b2250
mov qword [rsp + 0x48], rdi
mov r8, rdi
mov qword [rsp + 0x58], rdi
mov eax, 7
mov qword [rsp + 0x60], rax
mov word [rsp + 0x48], di
lea rcx, [rbp + 0x2a]
cmp r9, rcx
je 0x7ff7b50b22c5
lea r8, [rbp + 0x2a]
sub r8, r9
sar r8, 1
mov rdx, r9
lea rcx, [rsp + 0x48]
call fcn.7ff7b509fef0
mov rax, qword [rsp + 0x60]
mov r8, qword [rsp + 0x58]
or r13d, 0xc
lea rdx, [rsp + 0x48]
cmp rax, 8
cmovae rdx, qword [rsp + 0x48]
mov rcx, r15
call fcn.7ff7b509fa30
nop
mov rdx, qword [rsp + 0x60]
cmp rdx, 8
jb 0x7ff7b50b233f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff7b50b231e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x7ff7b50b23d8
call fcn.7ff7b50c1294
jmp 0x7ff7b50b233f
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
mov r8, qword [rbp - 0x20]
mov rcx, rbx
call fcn.7ff7b509f9a0
cmp dword [rbp - 0x38], 0
ja 0x7ff7b50b2050
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x7ff7b50b2380
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff7b50b237b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x7ff7b50b23df
call fcn.7ff7b50c1294
mov ebx, dword [rsp + 0x40]
mov rdi, qword [rsp + 0x68]
mov r15d, 1
mov rax, qword [rsp + 0x70]
mov r12d, dword [rax]
test esi, esi
je 0x7ff7b50b23a4
test r15d, r15d
je 0x7ff7b50b1cf0
mov rcx, r14
call qword [sym.imp.winhttp.dll_WinHttpCloseHandle]
mov rcx, qword [rbp - 0x40]
call qword [sym.imp.winhttp.dll_WinHttpCloseHandle]
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.winhttp.dll_WinHttpCloseHandle]
test esi, esi
je 0x7ff7b50b1cc1
mov al, 1
jmp 0x7ff7b50b1cc3
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3