Function at 0x1400237f4
Capabilities:
Initialize winhttp library
Prepare http request
Receive http response

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x188]
sub rsp, 0x250
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rax + 0x20], rbx
mov rax, qword [0x1400b1040]
xor rax, rsp
mov qword [rbp + 0x140], rax
mov r14, r8
mov r15, rdx
mov rsi, rcx
mov qword [rsp + 0x68], rcx
lea rax, vtable.GFE::HttpAccess::HttpResponseStream.0
mov qword [rcx], rax
xor edi, edi
mov dword [rcx + 8], edi
lea r13, [rcx + 0x10]
mov qword [rsp + 0x50], r13
mov qword [r13], rdi
mov qword [r13 + 8], rdi
lea edx, [rdi + 1]
mov rcx, r13
call fcn.140022c00
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [r13], rax
mov qword [rsi + 0x20], rdi
mov qword [rsi + 0x28], rdi
mov qword [rsi + 0x30], rdi
mov qword [rsi + 0x38], rdi
mov qword [rsi + 0x40], rdi
lea r12, [rsi + 0x48]
mov qword [r12 + 0x10], rdi
mov qword [r12 + 0x18], 7
mov word [r12], di
xor r8d, r8d
lea edx, [rdi + 3]
lea ecx, [rdi + 6]
call fcn.140024ae8
neg al
sbb edx, edx
and edx, 4
lea rcx, [r15 + 0x20]
cmp qword [rcx + 0x18], 8
jb 0x1400238ca
mov rcx, qword [rcx]
mov dword [rsp + 0x20], edi
xor r9d, r9d
xor r8d, r8d
call qword [sym.imp.WINHTTP.dll_WinHttpOpen]
mov rbx, rax
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x1400238ec
call qword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
mov qword [rsi + 0x20], rbx
test rbx, rbx
je 0x140023d8e
mov qword [rsp + 0x50], rsi
mov r9d, 8
lea r8, [rsp + 0x50]
lea edx, [r9 + 0x25]
mov rcx, rbx
call qword [sym.imp.WINHTTP.dll_WinHttpSetOption]
test eax, eax
je 0x140023e18
xor r9d, r9d
mov r8d, 0x100ff
lea rdx, [0x1400254d0]
mov rcx, qword [rsi + 0x20]
call qword [sym.imp.WINHTTP.dll_WinHttpSetStatusCallback]
cmp rax, 0xffffffffffffffff
je 0x140023ea2
test r14, r14
je 0x140023959
xor edx, edx
mov rcx, r14
call fcn.14002c8ec
test al, al
jne 0x140023f2c
movdqa xmm0, xmmword [0x14009c8d0]
movdqu xmmword [rbp + 0x20], xmm0
mov word [rbp + 0x10], di
movdqu xmmword [rbp], xmm0
mov word [rbp - 0x10], di
mov word [rsp + 0x48], di
mov dword [rsp + 0x40], edi
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x48]
lea r8, [rbp - 0x10]
lea rdx, [rbp + 0x10]
mov rcx, r15
call fcn.140026a4c
test r14, r14
je 0x1400239b2
xor edx, edx
mov rcx, r14
call fcn.14002c8ec
test al, al
jne 0x140023f4b
lea rdx, [rbp + 0x10]
cmp qword [rbp + 0x28], 8
cmovae rdx, qword [rbp + 0x10]
xor r9d, r9d
movzx r8d, word [rsp + 0x48]
mov rcx, qword [rsi + 0x20]
call qword [sym.imp.WINHTTP.dll_WinHttpConnect]
mov rbx, rax
mov rcx, qword [rsi + 0x28]
test rcx, rcx
je 0x1400239e5
call qword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
mov qword [rsi + 0x28], rbx
test rbx, rbx
je 0x140023f6a
test r14, r14
je 0x140023a09
xor edx, edx
mov rcx, r14
call fcn.14002c8ec
test al, al
jne 0x140023ff4
mov eax, 0x800000
cmp dword [rsp + 0x40], 2
cmove edi, eax
lea rbx, [rbp - 0x10]
cmp qword [rbp + 8], 8
cmovae rbx, qword [rbp - 0x10]
mov ecx, dword [r15 + 0x40]
call fcn.140024bb8
mov dword [rsp + 0x30], edi
xor edi, edi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
xor r9d, r9d
mov r8, rbx
mov rdx, rax
mov rcx, qword [rsi + 0x28]
call qword [sym.imp.WINHTTP.dll_WinHttpOpenRequest]
mov rbx, rax
mov rcx, qword [rsi + 0x30]
test rcx, rcx
je 0x140023a62
call qword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
mov qword [rsi + 0x30], rbx
cmp dword [rsp + 0x40], 2
jne 0x140023aac
mov dword [rsp + 0x40], 0xa00
call fcn.14002c648
mov ecx, dword [rsp + 0x40]
mov edx, 0x80
cmp eax, 7
cmovl ecx, edx
mov dword [rsp + 0x40], ecx
lea r9d, [rdx - 0x7c]
lea r8, [rsp + 0x40]
lea edx, [r9 + 0x50]
mov rcx, qword [rsi + 0x20]
call qword [sym.imp.WINHTTP.dll_WinHttpSetOption]
test eax, eax
je 0x140024013
mov rcx, qword [rsi + 0x30]
test rcx, rcx
je 0x14002409d
mov r8d, dword [r15 + 0x70]
test r8d, r8d
je 0x140023acc
mov edx, 3
call fcn.140026890
mov r8d, dword [r15 + 0x74]
test r8d, r8d
je 0x140023ae3
mov edx, 5
mov rcx, qword [rsi + 0x30]
call fcn.140026890
mov r8d, dword [r15 + 0x78]
test r8d, r8d
je 0x140023afa
mov edx, 6
mov rcx, qword [rsi + 0x30]
call fcn.140026890
mov r8d, dword [r15 + 0x7c]
test r8d, r8d
je 0x140023b11
mov edx, 7
mov rcx, qword [rsi + 0x30]
call fcn.140026890
lea rdx, [r15 + 0x48]
mov rcx, qword [rsi + 0x30]
call fcn.140025bac
test r14, r14
je 0x140023b35
xor edx, edx
mov rcx, r14
call fcn.14002c8ec
test al, al
jne 0x140024127
mov r9, qword [r15 + 0x58]
mov rdx, qword [r15 + 0x60]
mov ecx, edx
sub ecx, r9d
cmp r9, rdx
mov r8d, edi
je 0x140023b4d
mov r8d, ecx
mov eax, edi
cmovne eax, ecx
cmove r9, rdi
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], r8d
mov dword [rsp + 0x20], eax
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsi + 0x30]
call qword [sym.imp.WINHTTP.dll_WinHttpSendRequest]
test eax, eax
je 0x140024146
test r14, r14
je 0x140023b92
xor edx, edx
mov rcx, r14
call fcn.14002c8ec
test al, al
jne 0x1400241d3
xor edx, edx
mov rcx, qword [rsi + 0x30]
call qword [sym.imp.WINHTTP.dll_WinHttpReceiveResponse]
mov edi, eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r15d, eax
xor eax, eax
cmp qword [r12 + 0x10], rax
jne 0x140023bfc
mov rdx, qword [rsi + 0x30]
lea rcx, [rsp + 0x70]
call fcn.140025f10
mov rbx, rax
cmp r12, rax
je 0x140023bf2
mov rcx, r12
call fcn.14000db60
mov r8d, 0x20
mov rdx, rbx
mov rcx, r12
call fcn.140031a30
xor eax, eax
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], 7
mov word [rbx], ax
lea rcx, [rsp + 0x70]
call fcn.14000db60
test edi, edi
je 0x1400241f2
mov r8, r12
mov rdx, qword [rsi + 0x30]
lea rcx, [rbp - 0x30]
call fcn.1400260f4
nop
call fcn.14001f0b4
mov r9d, 1
mov r8, qword [rax]
lea edx, [r9 + 3]
lea rcx, [rbp + 0x30]
call fcn.14000c48c
nop
lea rbx, [rax + 0x10]
lea rdx, str.HTTP_request
mov rcx, rbx
call fcn.140012144
xor edi, edi
test rbx, rbx
jne 0x140023c4f
mov ecx, edi
jmp 0x140023c59
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
add rcx, rbx
call fcn.14001ae04
mov rdx, qword [rsi + 0x30]
mov rcx, rbx
call fcn.1400246d8
lea rdx, str.:_response_headers:_n
mov rcx, rbx
call fcn.140012144
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 8
cmovae rdx, qword [rbp - 0x30]
mov r8, qword [rbp - 0x20]
mov rcx, rbx
call fcn.140012f6c
nop
lea rcx, [rbp + 0xd8]
call fcn.14000c428
nop
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0xd8], rax
lea rcx, [rbp + 0xd8]
call fcn.14002eea0
nop
movdqa xmm0, xmmword [0x14009c8d0]
movdqu xmmword [rbp - 0x80], xmm0
mov word [rsp + 0x70], di
lea r8, [rsi + 8]
mov rdx, r13
lea rcx, [rbp - 0x30]
call fcn.140026344
lea rdx, [rsp + 0x40]
mov rcx, r13
call fcn.1400225dc
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x140023d06
mov rax, qword [rcx]
mov qword [rsi + 0x40], rax
mov edx, 8
call fcn.14002d030
test r14, r14
je 0x140023d19
xor edx, edx
mov rcx, r14
call fcn.14002c8ec
test al, al
jne 0x140023d6f
lea rcx, [rsp + 0x70]
call fcn.14000db60
nop
lea rcx, [rbp - 0x30]
call fcn.14000db60
nop
lea rcx, [rbp - 0x10]
call fcn.14000db60
nop
lea rcx, [rbp + 0x10]
call fcn.14000db60
nop
mov rax, rsi
mov rcx, qword [rbp + 0x140]
xor rcx, rsp
call fcn.14002ca00
mov rbx, qword [rsp + 0x2a8]
add rsp, 0x250
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov edx, 1
lea rcx, [rbp + 0x30]
call fcn.14002c904
lea rdx, [0x1400ae460]
lea rcx, [rbp + 0x30]
call fcn.140031e08
nop
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x70]
call fcn.14000c8bc
mov rsi, rax
movzx edi, bx
or edi, 0x80070000
test ebx, ebx
cmovle edi, ebx
mov edx, ebx
lea rcx, [rbp - 0x70]
call fcn.140006500
nop
mov r8, rax
lea rdx, str.WinHttpOpen_failed_with
lea rcx, [rbp - 0x50]
call fcn.14000eea8
nop
mov dword [rsp + 0x30], 1
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], 0x177
lea r9, str.C:dvsp4_build_sw_relgfclient_rel_03_27_backendcommonupdtlib_srcgfehttpaccess.cpp
mov r8d, edi
mov rdx, rax
lea rcx, [rbp + 0x30]
call fcn.1400244ac
lea rdx, [0x1400ae3f0]
lea rcx, [rbp + 0x30]
call fcn.140031e08
nop
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x70]
call fcn.14000c8bc
mov rsi, rax
movzx edi, bx
or edi, 0x80070000
test ebx, ebx
cmovle edi, ebx
mov edx, ebx
lea rcx, [rbp - 0x50]
call fcn.140006500
nop
mov r8, rax
lea rdx, str.WinHttpSetOption_for_WINHTTP_OPTION_CONTEXT_VALUE_failed_with
lea rcx, [rbp - 0x70]
call fcn.14000eea8
nop
mov dword [rsp + 0x30], 1
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], 0x18b
lea r9, str.C:dvsp4_build_sw_relgfclient_rel_03_27_backendcommonupdtlib_srcgfehttpaccess.cpp
mov r8d, edi
mov rdx, rax
lea rcx, [rbp + 0x30]
call fcn.1400244ac
lea rdx, [0x1400ae3f0]
lea rcx, [rbp + 0x30]
call fcn.140031e08
nop
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x70]
call fcn.14000c8bc
mov rsi, rax
movzx edi, bx
or edi, 0x80070000
test ebx, ebx
cmovle edi, ebx
mov edx, ebx
lea rcx, [rbp - 0x50]
call fcn.140006500
nop
mov r8, rax
lea rdx, str.WinHttpSetStatusCallback_failed_with
lea rcx, [rbp - 0x70]
call fcn.14000eea8
nop
mov dword [rsp + 0x30], 1
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], 0x19a
lea r9, str.C:dvsp4_build_sw_relgfclient_rel_03_27_backendcommonupdtlib_srcgfehttpaccess.cpp
mov r8d, edi
mov rdx, rax
lea rcx, [rbp + 0x30]
call fcn.1400244ac
lea rdx, [0x1400ae3f0]
lea rcx, [rbp + 0x30]
call fcn.140031e08
nop
mov edx, 1
lea rcx, [rbp + 0x30]
call fcn.14002c904
lea rdx, [0x1400ae460]
lea rcx, [rbp + 0x30]
call fcn.140031e08
nop
mov edx, 1
lea rcx, [rbp + 0x30]
call fcn.14002c904
lea rdx, [0x1400ae460]
lea rcx, [rbp + 0x30]
call fcn.140031e08
int3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x70]
call fcn.14000c8bc
mov rsi, rax
movzx edi, bx
or edi, 0x80070000
test ebx, ebx
cmovle edi, ebx
mov edx, ebx
lea rcx, [rbp - 0x50]
call fcn.140006500
nop
mov r8, rax
lea rdx, str.WinHttpConnect_failed_with
lea rcx, [rbp - 0x70]
call fcn.14000eea8
nop
mov dword [rsp + 0x30], 1
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], 0x1c6
lea r9, str.C:dvsp4_build_sw_relgfclient_rel_03_27_backendcommonupdtlib_srcgfehttpaccess.cpp
mov r8d, edi
mov rdx, rax
lea rcx, [rbp + 0x30]
call fcn.1400244ac
lea rdx, [0x1400ae3f0]
lea rcx, [rbp + 0x30]
call fcn.140031e08
nop
mov edx, 1
lea rcx, [rbp + 0x30]
call fcn.14002c904
lea rdx, [0x1400ae460]
lea rcx, [rbp + 0x30]
call fcn.140031e08
int3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x58], rax
lea rcx, [rsp + 0x70]
call fcn.14000c8bc
mov rsi, rax
movzx edi, bx
or edi, 0x80070000
test ebx, ebx
cmovle edi, ebx
mov edx, ebx
lea rcx, [rbp - 0x50]
call fcn.140006500
nop
mov r8, rax
lea rdx, str.WinHttpSetOption_failed_with
lea rcx, [rbp - 0x70]
call fcn.14000eea8
nop
mov dword [rsp + 0x30], 1
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], 0x1ee
lea r9, str.C:dvsp4_build_sw_relgfclient_rel_03_27_backendcommonupdtlib_srcgfehttpaccess.cpp
mov r8d, edi
mov rdx, rax
lea rcx, [rbp + 0x30]
call fcn.1400244ac
lea rdx, [0x1400ae3f0]
lea rcx, [rbp + 0x30]
call fcn.140031e08
nop
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x58], rax
lea rcx, [rsp + 0x70]
call fcn.14000c8bc
mov rsi, rax
movzx edi, bx
or edi, 0x80070000
test ebx, ebx
cmovle edi, ebx
mov edx, ebx
lea rcx, [rbp - 0x50]
call fcn.140006500
nop
mov r8, rax
lea rdx, str.WinHttpOpenRequest_failed_with
lea rcx, [rbp - 0x70]
call fcn.14000eea8
nop
mov dword [rsp + 0x30], 1
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], 0x1f9
lea r9, str.C:dvsp4_build_sw_relgfclient_rel_03_27_backendcommonupdtlib_srcgfehttpaccess.cpp
mov r8d, edi
mov rdx, rax
lea rcx, [rbp + 0x30]
call fcn.1400244ac
lea rdx, [0x1400ae3f0]
lea rcx, [rbp + 0x30]
call fcn.140031e08
nop
mov edx, 1
lea rcx, [rbp + 0x30]
call fcn.14002c904
lea rdx, [0x1400ae460]
lea rcx, [rbp + 0x30]
call fcn.140031e08
int3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x58], rax
mov rdx, r12
lea rcx, [rsp + 0x70]
call fcn.14000c8d4
mov rsi, rax
movzx edi, bx
or edi, 0x80070000
test ebx, ebx
cmovle edi, ebx
mov edx, ebx
lea rcx, [rbp - 0x50]
call fcn.140006500
nop
mov r8, rax
lea rdx, str.WinHttpSendRequest_failed_with
lea rcx, [rbp - 0x70]
call fcn.14000eea8
nop
mov dword [rsp + 0x30], 1
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], 0x228
lea r9, str.C:dvsp4_build_sw_relgfclient_rel_03_27_backendcommonupdtlib_srcgfehttpaccess.cpp
mov r8d, edi
mov rdx, rax
lea rcx, [rbp + 0x30]
call fcn.1400244ac
lea rdx, [0x1400ae3f0]
lea rcx, [rbp + 0x30]
call fcn.140031e08
nop
mov edx, 1
lea rcx, [rbp + 0x30]
call fcn.14002c904
lea rdx, [0x1400ae460]
lea rcx, [rbp + 0x30]
call fcn.140031e08
int3
lea rax, [rsp + 0x70]
mov qword [rsp + 0x58], rax
mov rdx, r12
lea rcx, [rsp + 0x70]
call fcn.14000c8d4
mov rdi, rax
movzx ebx, r15w
or ebx, 0x80070000
test r15d, r15d
cmovle ebx, r15d
mov edx, r15d
lea rcx, [rbp - 0x50]
call fcn.140006500
nop
mov r8, rax
lea rdx, str.WinHttpReceiveResponse_failed_with
lea rcx, [rbp - 0x70]
call fcn.14000eea8
nop
mov dword [rsp + 0x30], 1
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], 0x243
lea r9, str.C:dvsp4_build_sw_relgfclient_rel_03_27_backendcommonupdtlib_srcgfehttpaccess.cpp
mov r8d, ebx
mov rdx, rax
lea rcx, [rbp + 0x30]
call fcn.1400244ac
lea rdx, [0x1400ae3f0]
lea rcx, [rbp + 0x30]
call fcn.140031e08
int3