Function at 0x140040610
Capabilities:
Check http status code
Connect to http server
Create http request
Get http content length
Send data
Send http request

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x378
movaps xmmword [rsp + 0x360], xmm6
mov rax, qword [0x14031d040]
xor rax, rsp
mov qword [rsp + 0x358], rax
cmp dword [r8], 0
je 0x14004066f
mov rcx, qword [rsp + 0x358]
xor rcx, rsp
call fcn.1401f08b0
movaps xmm6, xmmword [rsp + 0x360]
add rsp, 0x378
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, r8
mov rdi, rdx
movabs rbp, 0x8000000000000000
cmp byte [rdx + 0x18], 0
jne 0x1400407e2
movsx r15, byte [rdi + 0x17]
mov rbx, r15
test r15, r15
jns 0x14004069a
mov rbx, qword [rdi + 8]
lea r12, [rbx + 0xe]
lea rax, [rbp - 9]
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x210], rcx
movaps xmm0, xmmword [0x1402825c0]
movaps xmmword [rsp + 0x200], xmm0
cmp r12, rax
ja 0x140041bdf
cmp r12, 0x16
ja 0x14004079d
xorps xmm0, xmm0
lea rax, [rsp + 0x200]
movaps xmmword [rax], xmm0
mov qword [rax + 0x10], 0
mov byte [rax + 0x17], r12b
lea rcx, [rax + 0xe]
lea rdx, str.Invalid_URL__
cmp rax, rdx
seta r8b
cmp rcx, rdx
setbe dl
or dl, r8b
je 0x140041adb
movabs rdx, 0x202d204c52552064
mov qword [rax + 6], rdx
movabs rdx, 0x2064696c61766e49
mov qword [rax], rdx
test r15b, r15b
jns 0x140040734
mov rdi, qword [rdi]
test rbx, rbx
js 0x140041adb
lea r14, [rcx + rbx]
cmp rdi, rcx
setb al
cmp r14, rdi
setbe dl
or dl, al
je 0x140041adb
test rbx, rbx
je 0x140040765
mov rdx, rdi
mov r8, rbx
call fcn.1402357f0
mov byte [r14], 0
mov dword [rsi], 4
lea rdi, [rsi + 8]
cmp byte [rsi + 0x1f], 0
jns 0x140040781
mov rcx, qword [rdi]
call fcn.1401ef41c
mov rax, qword [rsp + 0x210]
mov qword [rdi + 0x10], rax
movaps xmm0, xmmword [rsp + 0x200]
movups xmmword [rdi], xmm0
jmp 0x140040643
lea rax, [rbp - 8]
and rax, r12
add rax, 8
mov r14, r12
or r14, 7
cmp r14, 0x17
cmove r14, rax
inc r14
mov rcx, r14
call fcn.1401ef3e0
or r14, rbp
mov qword [rsp + 0x210], r14
mov qword [rsp + 0x200], rax
mov qword [rsp + 0x208], r12
jmp 0x1400406f0
mov rbx, rcx
mov rcx, rdi
call fcn.1401c6120
test al, al
jne 0x14004094a
mov rcx, rdi
call fcn.1401c5f70
mov rdi, rax
movsx r15, byte [rax + 0x17]
mov rbx, r15
test r15, r15
jns 0x140040811
mov rbx, qword [rdi + 8]
lea r12, [rbx + 0x19]
lea rax, [rbp - 9]
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x1f0], rcx
movaps xmm0, xmmword [0x1402825c0]
movaps xmmword [rsp + 0x1e0], xmm0
cmp r12, rax
ja 0x140041bec
cmp r12, 0x16
ja 0x140040905
xorps xmm0, xmm0
lea rax, [rsp + 0x1e0]
movaps xmmword [rax], xmm0
mov qword [rax + 0x10], 0
mov byte [rax + 0x17], r12b
lea rcx, [rax + 0x19]
lea rdx, str.Unsupported_URL_scheme__
cmp rax, rdx
seta r8b
cmp rcx, rdx
setbe dl
or dl, r8b
je 0x140041adb
movups xmm0, xmmword [0x14029ffe9]
movups xmmword [rax + 9], xmm0
movups xmm0, xmmword [str.Unsupported_URL_scheme__]
movups xmmword [rax], xmm0
test r15b, r15b
jns 0x1400408a5
mov rdi, qword [rdi]
test rbx, rbx
js 0x140041adb
lea r14, [rcx + rbx]
cmp rdi, rcx
jb 0x1400408c0
cmp r14, rdi
ja 0x140041adb
test rbx, rbx
je 0x1400408d0
mov rdx, rdi
mov r8, rbx
call fcn.1402357f0
mov byte [r14], 0
mov dword [rsi], 4
lea rdi, [rsi + 8]
cmp byte [rsi + 0x1f], 0
jns 0x1400408ec
mov rcx, qword [rdi]
call fcn.1401ef41c
mov rax, qword [rsp + 0x1f0]
mov qword [rdi + 0x10], rax
movaps xmm0, xmmword [rsp + 0x1e0]
jmp 0x140040795
lea rax, [rbp - 8]
and rax, r12
add rax, 8
mov r14, r12
or r14, 7
cmp r14, 0x17
cmove r14, rax
inc r14
mov rcx, r14
call fcn.1401ef3e0
or r14, rbp
mov qword [rsp + 0x1f0], r14
mov qword [rsp + 0x1e0], rax
mov qword [rsp + 0x1e8], r12
jmp 0x140040867
lea rax, str.https
lea rdx, [rsp + 0x1d0]
mov qword [rdx], rax
mov qword [rdx + 8], 5
mov rcx, rdi
call fcn.1401c6020
mov r15d, eax
mov ecx, 0x28
call fcn.1401ef3e0
mov qword [rsp + 0x220], rax
lea r13, [rbp + 0x28]
mov qword [rsp + 0x230], r13
mov qword [rsp + 0x228], 0x24
lea rcx, [rax + 0x24]
lea rdx, str.Vivaldi_6.9.3447.44_WinSparkle_0.5.2
cmp rax, rdx
seta r8b
cmp rcx, rdx
setbe cl
or cl, r8b
je 0x140041adb
movups xmm0, xmmword [0x1402a01a4]
movups xmmword [rax + 0x10], xmm0
movups xmm0, xmmword [str.Vivaldi_6.9.3447.44_WinSparkle_0.5.2]
movups xmmword [rax], xmm0
mov dword [rax + 0x20], 0x322e352e
mov byte [rax + 0x24], 0
lea rdx, str.__Win64_
lea r14, [rsp + 0x220]
mov r8d, 8
mov rcx, r14
call fcn.1401ac9d0
movsx rax, byte [r14 + 0x17]
test rax, rax
jns 0x140040a11
mov rax, qword [rsp + 0x228]
mov r14, qword [rsp + 0x220]
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x78], rax
test rax, rax
js 0x140041adb
sete al
test r14, r14
setne cl
or cl, al
je 0x140041adb
lea r14, [rsp + 0x1b0]
lea rdx, [rsp + 0x70]
mov rcx, r14
call fcn.1401b4b90
cmp byte [rsp + 0x237], 0
jns 0x140040a61
mov rcx, qword [rsp + 0x220]
call fcn.1401ef41c
cmp byte [rsp + 0x1c7], 0
jns 0x140040a73
mov r14, qword [rsp + 0x1b0]
mov dword [rsp + 0x20], 0
mov rcx, r14
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.WININET.dll_InternetOpenW]
mov qword [rbx], rax
cmp byte [rsp + 0x1c7], 0
jns 0x140040aa9
mov rcx, qword [rsp + 0x1b0]
call fcn.1401ef41c
mov rax, qword [rbx]
test rax, rax
je 0x140040b82
mov byte [rsp + 0x40], r15b
mov rcx, rdi
call fcn.1401c6230
mov r14d, eax
movsxd r15, dword [rdi + 0x3c]
test r15, r15
mov qword [rsp + 0x48], r13
jle 0x140041560
movsx rax, byte [rdi + 0x17]
mov r12, rdi
test rax, rax
jns 0x140040af1
mov rax, qword [rdi + 8]
test rax, rax
js 0x140041adb
mov r12, qword [rdi]
test rax, rax
sete cl
test r12, r12
setne dl
or dl, cl
je 0x140041adb
movsxd rcx, dword [rdi + 0x38]
sub rax, rcx
jb 0x140041bf9
sete dl
cmp rax, r15
cmovb r15, rax
add r12, rcx
setne al
or al, dl
je 0x140041adb
cmp r15, 0x16
ja 0x140040bde
lea rcx, [rsp + 0x220]
mov byte [rcx + 0x17], r15b
lea r13, [rcx + r15]
cmp rcx, r12
ja 0x140040b52
cmp r13, r12
ja 0x140041adb
test r15, r15
je 0x140040b62
mov rdx, r12
mov r8, r15
call fcn.1402357f0
mov byte [r13], 0
cmp byte [rsp + 0x237], 0
js 0x140040c2d
lea rdx, [rsp + 0x220]
jmp 0x140040c35
xorps xmm0, xmm0
lea r8, [rsp + 0x180]
movaps xmmword [r8], xmm0
mov qword [r8 + 0x10], 0
lea rdx, str.InternetOpen
lea rcx, [rsp + 0x198]
call fcn.1400420d0
mov dword [rsi], 4
lea rdi, [rsi + 8]
cmp byte [rsi + 0x1f], 0
jns 0x140040bc5
mov rcx, qword [rdi]
call fcn.1401ef41c
mov rax, qword [rsp + 0x1a8]
mov qword [rdi + 0x10], rax
movups xmm0, xmmword [rsp + 0x198]
jmp 0x140040795
mov eax, r15d
and eax, 0x7ffffff8
add rax, 8
mov r13, r15
or r13, 7
cmp r13, 0x17
cmove r13, rax
lea rcx, [r13 + 1]
call fcn.1401ef3e0
mov rcx, rax
mov qword [rsp + 0x220], rax
lea rax, [rbp + 1]
add rax, r13
mov qword [rsp + 0x230], rax
mov qword [rsp + 0x228], r15
jmp 0x140040b40
mov rdx, qword [rsp + 0x220]
mov rcx, qword [rbx]
xor eax, eax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 3
mov r8d, r14d
xor r9d, r9d
call qword [sym.imp.WININET.dll_InternetConnectA]
mov qword [rbx + 8], rax
cmp byte [rsp + 0x237], 0
jns 0x140040c7f
mov rcx, qword [rsp + 0x220]
call fcn.1401ef41c
mov rax, qword [rbx + 8]
test rax, rax
je 0x140040d7a
cmp byte [rbx + 0x30], 0
mov eax, 0x80000300
mov ecx, 0x200
cmovne ecx, eax
lea r15d, [rcx + 0x800000]
cmp byte [rsp + 0x40], 0
cmove r15d, ecx
lea r14, [rsp + 0x220]
mov rcx, rdi
mov rdx, r14
call fcn.1400751c0
cmp byte [r14 + 0x17], 0
jns 0x140040ccb
mov r14, qword [rsp + 0x220]
mov rcx, qword [rbx + 8]
mov dword [rsp + 0x30], r15d
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x38], 0
lea rdx, [0x1402a001e]
mov r8, r14
xor r9d, r9d
call qword [sym.imp.WININET.dll_HttpOpenRequestA]
mov qword [rbx + 0x10], rax
cmp byte [rsp + 0x237], 0
jns 0x140040d17
mov rcx, qword [rsp + 0x220]
call fcn.1401ef41c
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x140040dd6
lea rdx, [rbx + 0x18]
movsx r8d, byte [rbx + 0x2f]
test r8d, r8d
js 0x140040d6c
test r8b, r8b
je 0x140040d4a
mov rcx, rax
mov r9d, 0xa0000000
call qword [sym.imp.WININET.dll_HttpAddRequestHeadersA]
test eax, eax
je 0x140040e32
xor r14d, r14d
lea rax, [rsp + 0x1b0]
mov qword [rsp + 0x40], rax
lea r12, [rsp + 0x70]
lea r15, [rsp + 0x220]
jmp 0x140040ec4
mov r8, qword [rbx + 0x20]
test r8, r8
je 0x140040d4a
mov rdx, qword [rdx]
jmp 0x140040d33
xorps xmm0, xmm0
lea r8, [rsp + 0x150]
movaps xmmword [r8], xmm0
mov qword [r8 + 0x10], 0
lea rdx, [0x1402a000d]
lea rcx, [rsp + 0x168]
call fcn.1400420d0
mov dword [rsi], 4
lea rdi, [rsi + 8]
cmp byte [rsi + 0x1f], 0
jns 0x140040dbd
mov rcx, qword [rdi]
call fcn.1401ef41c
mov rax, qword [rsp + 0x178]
mov qword [rdi + 0x10], rax
movups xmm0, xmmword [rsp + 0x168]
jmp 0x140040795
xorps xmm0, xmm0
lea r8, [rsp + 0x120]
movaps xmmword [r8], xmm0
mov qword [r8 + 0x10], 0
lea rdx, [0x1402a0022]
lea rcx, [rsp + 0x138]
call fcn.1400420d0
mov dword [rsi], 4
lea rdi, [rsi + 8]
cmp byte [rsi + 0x1f], 0
jns 0x140040e19
mov rcx, qword [rdi]
call fcn.1401ef41c
mov rax, qword [rsp + 0x148]
mov qword [rdi + 0x10], rax
movups xmm0, xmmword [rsp + 0x138]
jmp 0x140040795
xorps xmm0, xmm0
lea r8, [rsp + 0xf0]
movaps xmmword [r8], xmm0
mov qword [r8 + 0x10], 0
lea rdx, [0x1402a0033]
lea rcx, [rsp + 0x108]
call fcn.1400420d0
mov dword [rsi], 4
lea rdi, [rsi + 8]
cmp byte [rsi + 0x1f], 0
jns 0x140040e75
mov rcx, qword [rdi]
call fcn.1401ef41c
mov rax, qword [rsp + 0x118]
mov qword [rdi + 0x10], rax
movups xmm0, xmmword [rsp + 0x108]
jmp 0x140040795
mov r13, qword [rbx + 0x10]
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov qword [rsp + 0x20], 0
mov rcx, rax
mov rdx, r13
mov r8d, 0x2eee
mov r9d, 7
call qword [sym.imp.WININET.dll_InternetErrorDlg]
cmp eax, 0x2f00
jne 0x140040f49
mov rcx, qword [rbx + 0x10]
mov dword [rsp + 0x20], 0
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.WININET.dll_HttpSendRequestW]
test eax, eax
je 0x140040ff2
mov dword [rsp + 0x70], r14d
mov rcx, qword [rbx + 0x10]
mov dword [rsp + 0x220], 4
mov dword [rsp + 0x1b0], r14d
lea rax, [rsp + 0x1b0]
mov qword [rsp + 0x20], rax
mov edx, 0x20000013
mov r8, r12
mov r9, r15
call qword [sym.imp.WININET.dll_HttpQueryInfoA]
cmp eax, 1
jne 0x140040f7f
mov r13d, dword [rsp + 0x70]
cmp r13d, 0x197
je 0x140040e8e
cmp r13d, 0x191
je 0x140040e8e
jmp 0x14004108d
cmp eax, 0x4c7
jne 0x140041088
mov dword [rsi], 1
lea rdi, [rsi + 8]
cmp byte [rsi + 0x1f], 0
jns 0x140040f6c
mov rcx, qword [rdi]
call fcn.1401ef41c
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], 0
jmp 0x140040643
mov ecx, 0x20
call fcn.1401ef3e0
mov rdi, rax
add rax, 0x1e
lea rcx, str.HTTP_reply_without_status_code
cmp rdi, rcx
seta dl
cmp rax, rcx
setbe al
or al, dl
je 0x140041adb
movups xmm0, xmmword [0x1402a00cb]
movups xmmword [rdi + 0xe], xmm0
movups xmm0, xmmword [str.HTTP_reply_without_status_code]
movups xmmword [rdi], xmm0
mov byte [rdi + 0x1e], 0
mov dword [rsi], 4
cmp byte [rsi + 0x1f], 0
jns 0x140040fd9
mov rcx, qword [rsi + 8]
call fcn.1401ef41c
mov qword [rsi + 8], rdi
mov qword [rsi + 0x10], 0x1e
add rbp, 0x20
mov qword [rsi + 0x18], rbp
jmp 0x140040643
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x2ee7
je 0x140041940
mov r12d, eax
cmp eax, 0x2efd
je 0x140041676
cmp r12d, 0x2f19
jne 0x140041843
lea r8, [rsp + 0x220]
mov dword [r8], 0
lea r12, [rsp + 0x1b0]
mov dword [r12], 4
mov rcx, qword [rbx + 0x10]
mov edx, 0x1f
mov r9, r12
call qword [sym.imp.WININET.dll_InternetQueryOptionW]
test eax, eax
je 0x140041add
lea r8, [rsp + 0x220]
or byte [r8], 0x80
mov rcx, qword [rbx + 0x10]
mov edx, 0x1f
mov r9d, 4
call qword [sym.imp.WININET.dll_InternetSetOptionW]
test eax, eax
je 0x140041b39
xor r14d, r14d
jmp 0x1400415a1
mov r13d, dword [rsp + 0x70]
cmp r13d, 0x190
jae 0x14004120c
lea r8, [rsp + 0x58]
mov dword [r8], 0xaaaaaaaa
mov rcx, qword [rbx + 0x10]
lea r9, [rsp + 0x220]
mov dword [r9], 4
mov dword [rsp + 0x1b0], 0
lea rax, [rsp + 0x1b0]
mov qword [rsp + 0x20], rax
mov edx, 0x20000005
call qword [sym.imp.WININET.dll_HttpQueryInfoA]
cmp eax, 1
jne 0x14004119c
mov edx, dword [rsp + 0x58]
cmp edx, 0x40000001
jb 0x140041199
lea r15, [rsp + 0x220]
mov rcx, r15
call fcn.14024d360
lea r8, str.Content_Length_is_too_big__
mov r9d, 0x1c
mov rcx, r15
xor edx, edx
call fcn.1401ac340
mov r14b, byte [rax]
mov rcx, qword [rax + 0xf]
mov qword [rsp + 0x32e], rcx
movups xmm0, xmmword [rax + 1]
movaps xmmword [rsp + 0x320], xmm0
mov r15b, byte [rax + 0x17]
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rax + 0x10], 0
mov dword [rsi], 4
cmp byte [rsi + 0x1f], 0
jns 0x14004115e
mov rcx, qword [rsi + 8]
call fcn.1401ef41c
mov byte [rsi + 8], r14b
movaps xmm0, xmmword [rsp + 0x320]
movups xmmword [rsi + 9], xmm0
mov rax, qword [rsp + 0x32e]
mov qword [rsi + 0x17], rax
mov byte [rsi + 0x1f], r15b
cmp byte [rsp + 0x237], 0
jns 0x140041195
mov rcx, qword [rsp + 0x220]
call fcn.1401ef41c
mov edx, dword [rsp + 0x58]
mov dword [rbx + 0x34], edx
lea rsi, [rsp + 0x220]
mov r8d, 0x100
mov rcx, rsi
xor edx, edx
call fcn.140235e90
lea r9, [rsp + 0x54]
mov dword [r9], 0x100
mov rcx, qword [rbx + 0x10]
mov qword [rsp + 0x20], 0
mov edx, 0x2f
mov r8, rsi
call qword [sym.imp.WININET.dll_HttpQueryInfoA]
test eax, eax
je 0x140041471
lea rdx, str.filename
lea rcx, [rsp + 0x220]
call fcn.1401f2508
test rax, rax
je 0x140041471
mov rsi, rax
add rsi, 9
jmp 0x1400413a3
mov ecx, 0x28
call fcn.1401ef3e0
mov qword [rsp + 0x220], rax
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x230], rcx
mov qword [rsp + 0x228], 0x20
lea rcx, [rax + 0x20]
lea rdx, str.DownloadFile:_HTTP_error_status
cmp rax, rdx
seta r8b
cmp rcx, rdx
setbe cl
or cl, r8b
je 0x140041adb
movups xmm0, xmmword [0x1402a00ec]
movups xmmword [rax + 0x10], xmm0
movups xmm0, xmmword [str.DownloadFile:_HTTP_error_status]
movups xmmword [rax], xmm0
mov byte [rax + 0x20], 0
lea rbx, [rsp + 0x1b0]
mov rcx, rbx
mov edx, r13d
call fcn.14024d360
movsx r8, byte [rbx + 0x17]
test r8, r8
jns 0x14004129e
mov r8, qword [rsp + 0x1b8]
mov rbx, qword [rsp + 0x1b0]
lea rcx, [rsp + 0x220]
mov rdx, rbx
call fcn.1401ac9d0
cmp byte [rsp + 0x1c7], 0
jns 0x1400412c5
mov rcx, qword [rsp + 0x1b0]
call fcn.1401ef41c
lea rdx, str._nURL:
lea rbx, [rsp + 0x220]
mov r8d, 6
mov rcx, rbx
call fcn.1401ac9d0
mov rcx, rdi
call fcn.1401c5f70
movsx r8, byte [rax + 0x17]
test r8, r8
jns 0x1400412fb
mov r8, qword [rax + 8]
mov rax, qword [rax]
mov rcx, rbx
mov rdx, rax
call fcn.1401ac9d0
mov bl, byte [rsp + 0x220]
movups xmm0, xmmword [rsp + 0x221]
movaps xmmword [rsp + 0x340], xmm0
mov rax, qword [rsp + 0x22f]
mov qword [rsp + 0x34e], rax
mov dil, byte [rsp + 0x237]
xorps xmm0, xmm0
movaps xmmword [rsp + 0x220], xmm0
mov qword [rsp + 0x230], 0
mov dword [rsi], 4
cmp byte [rsi + 0x1f], 0
jns 0x140041361
mov rcx, qword [rsi + 8]
call fcn.1401ef41c
mov byte [rsi + 8], bl
movaps xmm0, xmmword [rsp + 0x340]
movups xmmword [rsi + 9], xmm0
mov rax, qword [rsp + 0x34e]
mov qword [rsi + 0x17], rax
mov byte [rsi + 0x1f], dil
cmp byte [rsp + 0x237], 0
jns 0x140040643
mov rcx, qword [rsp + 0x220]
call fcn.1401ef41c
jmp 0x140040643
inc rsi
movzx eax, byte [rsi]
cmp eax, 0x20
je 0x1400413a0
cmp eax, 0x22
je 0x1400413b9
cmp eax, 0x27
je 0x1400413b9
xor eax, eax
jmp 0x1400413be
inc rsi
mov al, 1
xor r14d, r14d
jmp 0x1400413c6
inc r14
movzx ecx, byte [rsi + r14]
test ecx, ecx
je 0x1400413d4
cmp ecx, 0x3b
jne 0x1400413c3
test r14, r14
setne cl
and al, cl
movzx r13d, al
mov r15, r14
sub r15, r13
je 0x140041471
test rsi, rsi
je 0x140041adb
lea rax, [rbp - 9]
cmp r15, rax
ja 0x140041c05
neg r13
cmp r15, 0x16
ja 0x140041b95
lea eax, [r14 + r13]
mov byte [rsp + 0x1c7], al
add r13, r14
mov rax, qword [rsp + 0x40]
add r13, rax
cmp rax, rsi
ja 0x140041433
cmp r13, rsi
ja 0x140041adb
mov rcx, qword [rsp + 0x40]
mov rdx, rsi
mov r8, r15
call fcn.1402357f0
mov byte [r13], 0
lea rsi, [rbx + 0x40]
cmp byte [rbx + 0x57], 0
jns 0x14004145a
mov rcx, qword [rsi]
call fcn.1401ef41c
mov rax, qword [rsp + 0x1c0]
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [rsp + 0x1b0]
movups xmmword [rsi], xmm0
movsx rax, byte [rbx + 0x57]
test rax, rax
js 0x1400414db
mov rcx, rax
lea r14, [rbx + 0x40]
test rcx, rcx
jne 0x1400414c0
lea rdx, [rsp + 0x1b0]
mov rcx, rdi
call fcn.140074f70
cmp byte [rbx + 0x57], 0
jns 0x1400414a5
mov rcx, qword [r14]
call fcn.1401ef41c
mov rax, qword [rsp + 0x1c0]
mov qword [r14 + 0x10], rax
movups xmm0, xmmword [rsp + 0x1b0]
movups xmmword [r14], xmm0
mov al, byte [rbx + 0x57]
test al, al
js 0x1400414e1
movzx edi, al
mov r15, r14
test rdi, rdi
je 0x14004151a
xor r12d, r12d
lea rsi, str._:___
jmp 0x1400414f8
mov rcx, qword [rbx + 0x48]
jmp 0x14004147e
mov r15, qword [rbx + 0x40]
mov rdi, qword [rbx + 0x48]
jmp 0x1400414ca
mov byte [r15 + r12], 0x58
inc r12
cmp rdi, r12
je 0x140041517
movsx edx, byte [r15 + r12]
cmp edx, 0x20
jl 0x1400414eb
mov r8d, 0xa
mov rcx, rsi
call fcn.140235650
test rax, rax
jne 0x1400414eb
jmp 0x1400414f0
mov al, byte [rbx + 0x57]
test al, al
js 0x140041547
jne 0x140040643
mov byte [rbx + 0x57], 0xb
movabs rax, 0x2e6e776f6e6b6e75
mov qword [r14], rax
mov dword [r14 + 7], 0x6e69622e
mov byte [r14 + 0xb], 0
jmp 0x140040643
cmp qword [rbx + 0x48], 0
jne 0x140040643
mov qword [rbx + 0x48], SafeArrayGetDim
mov r14, qword [rbx + 0x40]
jmp 0x140041528
xor r15d, r15d
xor r12d, r12d
jmp 0x140040b34
mov r13, qword [rbx + 0x10]
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov qword [rsp + 0x20], 0
mov rcx, rax
mov rdx, r13
mov r8d, 0x2eee
mov r9d, 7
call qword [sym.imp.WININET.dll_InternetErrorDlg]
cmp eax, 0x2f00
jne 0x140040f49
mov rcx, qword [rbx + 0x10]
mov dword [rsp + 0x20], 0
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.WININET.dll_HttpSendRequestW]
test eax, eax
je 0x140041815
mov dword [rsp + 0x70], r14d
mov rcx, qword [rbx + 0x10]
mov dword [rsp + 0x220], 4
mov dword [rsp + 0x1b0], r14d
mov qword [rsp + 0x20], r12
mov edx, 0x20000013
lea r8, [rsp + 0x70]
lea r9, [rsp + 0x220]
call qword [sym.imp.WININET.dll_HttpQueryInfoA]
cmp eax, 1
jne 0x140040f7f
mov r13d, dword [rsp + 0x70]
cmp r13d, 0x197
je 0x14004156b
cmp r13d, 0x191
je 0x14004156b
jmp 0x14004108d
xor r14d, r14d
xor r15d, r15d
jmp 0x1400416f9
mov eax, r14d
and eax, 0x7ffffff8
add rax, 8
mov rdi, r14
or rdi, 7
cmp rdi, 0x17
cmove rdi, rax
lea rcx, [rdi + 1]
call fcn.1401ef3e0
mov rcx, rax
mov qword [rsp + 0x58], rax
lea rax, [rdi + rbp]
inc rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x60], r14
jmp 0x140041702
mov rcx, rdi
call fcn.1401c6230
lea rbx, [rsp + 0x220]
mov rcx, rbx
mov edx, eax
call fcn.1401adaa0
movsxd r14, dword [rdi + 0x3c]
test r14, r14
jle 0x140041629
movsx rax, byte [rdi + 0x17]
mov r15, rdi
test rax, rax
jns 0x1400416b6
mov rax, qword [rdi + 8]
test rax, rax
js 0x140041adb
mov r15, qword [rdi]
test rax, rax
sete cl
test r15, r15
setne dl
or dl, cl
je 0x140041adb
movsxd rcx, dword [rdi + 0x38]
sub rax, rcx
jb 0x140041bf9
sete dl
cmp rax, r14
cmovb r14, rax
add r15, rcx
setne al
or al, dl
je 0x140041adb
cmp r14, 0x16
ja 0x140041634
lea rcx, [rsp + 0x58]
mov byte [rcx + 0x17], r14b
lea rdi, [rcx + r14]
cmp rcx, r15
ja 0x140041714
cmp rdi, r15
ja 0x140041adb
test r14, r14
je 0x140041724
mov rdx, r15
mov r8, r14
call fcn.1402357f0
mov byte [rdi], 0
lea r8, str.Cannot_connect_to
xor r13d, r13d
lea rcx, [rsp + 0x58]
mov r9d, SafeArrayUnlock
xor edx, edx
call fcn.1401ac340
movups xmm0, xmmword [rax]
lea rcx, [rsp + 0x70]
movaps xmmword [rcx], xmm0
mov rdx, qword [rax + 0x10]
mov qword [rcx + 0x10], rdx
mov qword [rax + 0x10], r13
xorps xmm6, xmm6
movups xmmword [rax], xmm6
lea rdx, [0x14029ec1b]
mov r8d, 1
call fcn.1401ac9d0
movups xmm0, xmmword [rax]
lea rdi, [rsp + 0x1b0]
movaps xmmword [rdi], xmm0
mov rcx, qword [rax + 0x10]
mov qword [rdi + 0x10], rcx
mov qword [rax + 0x10], r13
movups xmmword [rax], xmm6
movsx r8, byte [rsp + 0x237]
test r8, r8
cmovs r8, qword [rsp + 0x228]
cmovs rbx, qword [rsp + 0x220]
mov rcx, rdi
mov rdx, rbx
call fcn.1401ac9d0
mov r12, qword [rax]
mov r15, qword [rax + 8]
mov r14, qword [rax + 0x10]
mov qword [rax + 0x10], r13
movups xmmword [rax], xmm6
cmp byte [rdi + 0x17], 0
jns 0x1400417dd
mov rcx, qword [rsp + 0x1b0]
call fcn.1401ef41c
cmp byte [rsp + 0x87], 0
jns 0x1400417f1
mov rcx, qword [rsp + 0x70]
call fcn.1401ef41c
cmp byte [rsp + 0x6f], 0
jns 0x140041802
mov rcx, qword [rsp + 0x58]
call fcn.1401ef41c
cmp byte [rsp + 0x237], 0
jns 0x140041a27
jmp 0x140041a1a
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x2ee7
je 0x140041940
mov r12d, eax
cmp eax, 0x2efd
je 0x140041676
cmp r12d, 0x2f19
jne 0x140041843
mov r12d, 0x2f19
mov rcx, rdi
call fcn.1401c5f70
mov rdi, rax
lea rbx, [rsp + 0x70]
mov rcx, rbx
mov edx, r12d
call fcn.14024d360
lea r8, str.Internet_connection_error
xor r13d, r13d
mov r9d, 0x1a
mov rcx, rbx
xor edx, edx
call fcn.1401ac340
movups xmm0, xmmword [rax]
lea rcx, [rsp + 0x1b0]
movaps xmmword [rcx], xmm0
mov rdx, qword [rax + 0x10]
mov qword [rcx + 0x10], rdx
mov qword [rax + 0x10], r13
xorps xmm6, xmm6
movups xmmword [rax], xmm6
lea rdx, str._for
mov r8d, 5
call fcn.1401ac9d0
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x220], xmm0
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x230], rcx
mov qword [rax + 0x10], r13
movups xmmword [rax], xmm6
movsx r8, byte [rdi + 0x17]
test r8, r8
jns 0x1400418d9
mov r8, qword [rdi + 8]
mov rdi, qword [rdi]
lea rbx, [rsp + 0x220]
mov rcx, rbx
mov rdx, rdi
call fcn.1401ac9d0
mov r12, qword [rax]
mov r15, qword [rax + 8]
mov r14, qword [rax + 0x10]
mov qword [rax + 0x10], r13
movups xmmword [rax], xmm6
cmp byte [rbx + 0x17], 0
jns 0x140041911
mov rcx, qword [rsp + 0x220]
call fcn.1401ef41c
cmp byte [rsp + 0x1c7], 0
jns 0x140041928
mov rcx, qword [rsp + 0x1b0]
call fcn.1401ef41c
cmp byte [rsp + 0x87], 0
jns 0x140041a27
mov rcx, qword [rsp + 0x70]
jmp 0x140041a22
movsxd rbx, dword [rdi + 0x3c]
test rbx, rbx
jle 0x140041ad1
movsx rax, byte [rdi + 0x17]
mov r14, rdi
test rax, rax
jns 0x14004196a
mov rax, qword [rdi + 8]
test rax, rax
js 0x140041adb
mov r14, qword [rdi]
test rax, rax
sete cl
test r14, r14
setne dl
or dl, cl
je 0x140041adb
movsxd rcx, dword [rdi + 0x38]
sub rax, rcx
jb 0x140041bf9
sete dl
cmp rax, rbx
cmovb rbx, rax
add r14, rcx
setne al
or al, dl
je 0x140041adb
cmp rbx, 0x16
ja 0x140041a87
mov byte [rsp + 0x237], bl
lea rdi, [r15 + rbx]
cmp r15, r14
ja 0x1400419c6
cmp rdi, r14
ja 0x140041adb
test rbx, rbx
je 0x1400419d9
mov rcx, r15
mov rdx, r14
mov r8, rbx
call fcn.1402357f0
mov byte [rdi], 0
lea r8, str.Cannot_resolve_DNS_name
lea rdi, [rsp + 0x220]
mov r9d, 0x18
mov rcx, rdi
xor edx, edx
call fcn.1401ac340
mov r12, qword [rax]
mov r15, qword [rax + 8]
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov r14, qword [rax + 0x10]
mov qword [rax + 0x10], 0
cmp byte [rdi + 0x17], 0
jns 0x140041a27
mov rcx, qword [rsp + 0x220]
call fcn.1401ef41c
mov rbx, r12
shr rbx, 8
mov rdi, r14
shr rdi, 0x38
mov dword [rsi], 4
cmp byte [rsi + 0x1f], 0
jns 0x140041a4a
mov rcx, qword [rsi + 8]
call fcn.1401ef41c
mov byte [rsi + 8], r12b
mov dword [rsi + 9], ebx
mov rax, rbx
shr rax, 0x30
mov byte [rsi + 0xf], al
shr rbx, 0x20
mov word [rsi + 0xd], bx
mov qword [rsi + 0x10], r15
mov dword [rsi + 0x18], r14d
mov rax, r14
shr rax, 0x30
mov byte [rsi + 0x1e], al
shr r14, 0x20
mov word [rsi + 0x1c], r14w
mov byte [rsi + 0x1f], dil
jmp 0x140040643
mov eax, ebx
and eax, 0x7ffffff8
add rax, 8
mov rdi, rbx
or rdi, 7
cmp rdi, 0x17
cmove rdi, rax
lea rcx, [rdi + 1]
call fcn.1401ef3e0
mov r15, rax
mov qword [rsp + 0x220], rax
lea rax, [rdi + rbp]
inc rax
mov qword [rsp + 0x230], rax
mov qword [rsp + 0x228], rbx
jmp 0x1400419b4
xor ebx, ebx
xor r14d, r14d
jmp 0x1400419ad
ud2
xorps xmm0, xmm0
lea r8, [rsp + 0xc0]
movaps xmmword [r8], xmm0
mov qword [r8 + 0x10], 0
lea rdx, str.InternetQueryOption
lea rcx, [rsp + 0xd8]
call fcn.1400420d0
mov dword [rsi], 4
lea rdi, [rsi + 8]
cmp byte [rsi + 0x1f], 0
jns 0x140041b20
mov rcx, qword [rdi]
call fcn.1401ef41c
mov rax, qword [rsp + 0xe8]
mov qword [rdi + 0x10], rax
movups xmm0, xmmword [rsp + 0xd8]
jmp 0x140040795
xorps xmm0, xmm0
lea r8, [rsp + 0x90]
movaps xmmword [r8], xmm0
mov qword [r8 + 0x10], 0
lea rdx, str.InternetSetOption
lea rcx, [rsp + 0xa8]
call fcn.1400420d0
mov dword [rsi], 4
lea rdi, [rsi + 8]
cmp byte [rsi + 0x1f], 0
jns 0x140041b7c
mov rcx, qword [rdi]
call fcn.1401ef41c
mov rax, qword [rsp + 0xb8]
mov qword [rdi + 0x10], rax
movups xmm0, xmmword [rsp + 0xa8]
jmp 0x140040795
lea rax, [rbp - 8]
and rax, r15
add rax, 8
mov r12, r15
or r12, 7
cmp r12, 0x17
cmove r12, rax
inc r12
mov rcx, r12
call fcn.1401ef3e0
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x1b0], rax
or r12, rbp
mov qword [rsp + 0x1c0], r12
mov qword [rsp + 0x1b8], r15
jmp 0x14004141a
lea rcx, [rsp + 0x200]
call fcn.140236a90
lea rcx, [rsp + 0x1e0]
call fcn.140236a90
lea rcx, [0x14029eb6f]
call fcn.140236f40
lea rcx, [rsp + 0x1b0]
call fcn.140236a90
int3