Function at 0x14003a1c0
Capabilities:
Download url
Get file size
Receive data

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x70]
sub rsp, 0x170
mov qword [rbp - 0x80], 0xfffffffffffffffe
mov qword [rsp + 0x1c8], rbx
mov rax, qword [0x140228058]
xor rax, rsp
mov qword [rbp + 0x60], rax
movsxd r13, r8d
mov r14, rdx
mov rdi, rcx
movdqa xmm0, xmmword [0x1401d8170]
movdqu xmmword [rbp - 0x10], xmm0
xor r15d, r15d
mov word [rbp - 0x20], r15w
xor r12b, r12b
xor eax, eax
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], rax
lea r8, [rsp + 0x30]
mov edx, 0x104
lea rcx, [rbp - 0x58]
call fcn.1400248e0
nop
mov rax, qword [rbp - 0x50]
mov rsi, qword [rbp - 0x58]
sub rax, rsi
sar rax, 1
cmp qword [rdi + 0x18], 8
jb 0x1400398b1
mov rdi, qword [rdi]
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], r15d
mov r9d, eax
mov r8, rsi
mov rdx, rdi
xor ecx, ecx
call qword [sym.imp.urlmon.dll_URLDownloadToCacheFileW]
test eax, eax
js 0x14003992d
mov r12b, 1
mov rdx, 0xffffffffffffffff
nop word [rax + rax]
inc rdx
cmp word [rsi + rdx*2], 0
jne 0x1400398e0
mov rax, qword [rbp - 8]
cmp rdx, rax
ja 0x14003991d
lea rbx, [rbp - 0x20]
cmp rax, 8
cmovae rbx, qword [rbp - 0x20]
mov qword [rbp - 0x10], rdx
lea rdi, [rdx + rdx]
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.14015c680
mov word [rdi + rbx], r15w
jmp 0x14003992d
mov r9, rsi
xor r8d, r8d
lea rcx, [rbp - 0x20]
call fcn.140015860
nop
test rsi, rsi
je 0x14003996d
mov rax, qword [rbp - 0x48]
sub rax, rsi
sar rax, 1
lea rdx, [rax + rax]
mov rax, rsi
cmp rdx, 0x1000
jb 0x140039965
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003a16e
mov rcx, rsi
call fcn.14013db80
test r12b, r12b
je 0x14003a101
xor eax, eax
mov qword [rbp], rax
mov qword [rbp + 8], rax
mov qword [rbp + 0x10], rax
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x28], rax
mov qword [rbp + 0x30], rax
mov qword [rbp + 0x38], rax
lea rdx, [rbp - 0x20]
lea rcx, [rbp]
call fcn.140030630
nop
mov rdi, qword [rbp + 0x38]
mov esi, 0xffffffff
mov dword [rsp + 0x38], esi
xor eax, eax
mov dword [rsp + 0x3c], eax
mov rcx, qword [rbp + 0x28]
test rcx, rcx
je 0x1400399d1
lea rdx, [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov esi, dword [rsp + 0x38]
test rdi, rdi
je 0x14003a096
test esi, esi
je 0x14003a096
movsxd r8, esi
lea rax, [r8 + rdi]
movdqa xmm0, xmmword [0x1401d8180]
movdqu xmmword [rbp + 0x50], xmm0
mov byte [rbp + 0x40], 0
cmp rdi, rax
je 0x140039a0c
mov rdx, rdi
lea rcx, [rbp + 0x40]
call fcn.14001e300
nop
mov qword [rbp - 0x30], r15
mov qword [rbp - 0x28], reloc.OLEAUT32.dll_SafeArrayDestroy
mov byte [rbp - 0x40], 0
movdqa xmm0, xmmword [0x1401d8180]
movdqu xmmword [rsp + 0x50], xmm0
mov byte [rsp + 0x40], 0
mov r8d, 5
lea rdx, str._____
lea rcx, [rsp + 0x40]
call fcn.14001e300
nop
movdqa xmm0, xmmword [0x1401d8180]
movdqu xmmword [rbp - 0x68], xmm0
mov byte [rbp - 0x78], 0
mov r8d, SafeArrayCopy
lea rdx, str._meta.charset_s____
lea rcx, [rbp - 0x78]
call fcn.14001e300
nop
lea r9, [rbp - 0x40]
lea r8, [rsp + 0x40]
lea rdx, [rbp - 0x78]
lea rcx, [rbp + 0x40]
call fcn.14003a8f0
movzx r12d, al
mov rdx, qword [rbp - 0x60]
cmp rdx, 0x10
jb 0x140039ac4
inc rdx
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140039abf
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003a174
call fcn.14013db80
movdqa xmm0, xmmword [0x1401d8180]
movdqu xmmword [rbp - 0x68], xmm0
mov byte [rbp - 0x78], 0
mov rdx, qword [rsp + 0x58]
cmp rdx, 0x10
jb 0x140039b12
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140039b0d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003a17a
call fcn.14013db80
test r12b, r12b
je 0x14003a00f
lea r15, [rbp - 0x40]
cmp qword [rbp - 0x28], 0x10
cmovae r15, qword [rbp - 0x40]
lea rbx, [rbp - 0x40]
cmovae rbx, qword [rbp - 0x40]
add r15, qword [rbp - 0x30]
movdqa xmm0, xmmword [0x1401d8170]
movdqu xmmword [rbp - 0x68], xmm0
xor eax, eax
mov word [rbp - 0x78], ax
mov rdx, r15
sub rdx, rbx
cmp rdx, 8
jb 0x140039b64
lea rcx, [rbp - 0x78]
call fcn.140023240
xor eax, eax
mov qword [rbp - 0x68], rax
mov r8, r15
mov rdx, rbx
lea rcx, [rbp - 0x78]
call fcn.14003bda0
nop
lea rdx, [rbp - 0x78]
lea rcx, [rsp + 0x60]
call fcn.14001f0e0
mov rcx, rax
call fcn.140038cd0
mov r15d, eax
mov rdx, qword [rbp - 0x60]
cmp rdx, 8
jb 0x140039bcd
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140039bc8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003a180
call fcn.14013db80
xor eax, eax
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rax
mov r9d, esi
mov r8, rdi
xor edx, edx
mov ecx, r15d
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jle 0x14003a00c
cmp eax, 0x7a
je 0x14003a00c
cmp eax, 0x3ec
je 0x14003a00c
cmp eax, 0x57
je 0x14003a00c
cmp eax, 0x459
je 0x14003a00c
xor ecx, ecx
mov qword [rbp - 0x58], rcx
mov qword [rbp - 0x50], rcx
mov qword [rbp - 0x48], rcx
inc eax
movsxd rdx, eax
lea r8, [rsp + 0x30]
lea rcx, [rbp - 0x58]
call fcn.1400248e0
nop
mov rax, qword [rbp - 0x50]
mov rbx, qword [rbp - 0x58]
sub rax, rbx
sar rax, 1
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbx
mov r9d, esi
mov r8, rdi
xor edx, edx
mov ecx, r15d
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jle 0x140039fc7
cmp eax, 0x7a
je 0x140039fc7
cmp eax, 0x3ec
je 0x140039fc7
cmp eax, 0x57
je 0x140039fc7
xor r15d, r15d
cmp eax, 0x459
je 0x140039fca
movdqa xmm0, xmmword [0x1401d8170]
movdqu xmmword [rbp - 0x68], xmm0
mov word [rbp - 0x78], r15w
mov rsi, 0xffffffffffffffff
mov rdx, rsi
inc rdx
cmp word [rbx + rdx*2], r15w
jne 0x140039cb2
lea rcx, [rbp - 0x78]
cmp rdx, 7
ja 0x140039ce1
mov qword [rbp - 0x68], rdx
lea rdi, [rdx + rdx]
mov r8, rdi
mov rdx, rbx
call fcn.14015c680
mov word [rbp + rdi - 0x78], r15w
jmp 0x140039ced
mov r9, rbx
xor r8d, r8d
call fcn.140015860
nop
movdqa xmm0, xmmword [0x1401d8170]
movdqu xmmword [rsp + 0x70], xmm0
mov word [rsp + 0x60], r15w
lea r9, str.__title_
xor r8d, r8d
lea edx, [r8 + 0xa]
lea rcx, [rsp + 0x60]
call fcn.140015860
nop
movdqa xmm0, xmmword [0x1401d8170]
movdqu xmmword [rsp + 0x50], xmm0
mov word [rsp + 0x40], r15w
lea r9, str._title_
xor r8d, r8d
lea edx, [r8 + 9]
lea rcx, [rsp + 0x40]
call fcn.140015860
nop
mov r9, r14
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x78]
call fcn.14003afb0
movzx r12d, al
mov rdx, qword [rsp + 0x58]
cmp rdx, 8
jb 0x140039da3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140039d9e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003a186
call fcn.14013db80
movdqa xmm0, xmmword [0x1401d8170]
movdqu xmmword [rsp + 0x50], xmm0
mov word [rsp + 0x40], r15w
mov rdx, qword [rsp + 0x78]
cmp rdx, 8
jb 0x140039df9
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140039df4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003a18c
call fcn.14013db80
test r12b, r12b
je 0x140039f85
mov r8, qword [r14 + 0x10]
cmp r8d, r13d
jle 0x140039f85
mov rcx, r13
cmp r13, r8
ja 0x140039e2f
mov qword [r14 + 0x10], rcx
mov rax, r14
cmp qword [r14 + 0x18], 8
jb 0x140039e28
mov rax, qword [r14]
mov word [rax + r13*2], r15w
jmp 0x140039e83
mov rdx, rcx
sub rdx, r8
mov rdi, qword [r14 + 0x18]
mov rax, rdi
sub rax, r8
cmp rdx, rax
ja 0x140039e72
mov qword [r14 + 0x10], rcx
mov r9, r14
cmp rdi, 8
jb 0x140039e54
mov r9, qword [r14]
lea rdi, [r9 + r8*2]
test rdx, rdx
je 0x140039e67
movzx eax, r15w
mov rcx, rdx
rep stosw word [rdi], ax
lea rax, [rdx + r8]
mov word [r9 + rax*2], r15w
jmp 0x140039e83
mov word [rsp + 0x20], r15w
mov r9, rdx
mov rcx, r14
call fcn.140016b70
mov rax, qword [r14 + 0x18]
cmp rax, 8
jb 0x140039f85
mov rdi, qword [r14 + 0x10]
cmp rdi, 8
jae 0x140039ea8
mov rcx, r14
call fcn.140022fc0
jmp 0x140039f85
or rdi, 7
movabs rcx, 0x7ffffffffffffffe
cmp rdi, rcx
cmova rdi, rcx
cmp rdi, rax
jae 0x140039f85
mov rax, rdi
add rax, 1
cmovb rax, rsi
lea rdx, [rax + rax]
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
jbe 0x140039ee9
mov rdx, rsi
jmp 0x140039ef2
cmp rdx, 0x1000
jb 0x140039f19
lea rcx, [rdx + 0x27]
cmp rcx, rdx
cmovbe rcx, rsi
call fcn.14013db44
test rax, rax
je 0x14003a192
lea rsi, [rax + 0x27]
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x140039f2e
test rdx, rdx
je 0x140039f2b
mov rcx, rdx
call fcn.14013db44
mov rsi, rax
jmp 0x140039f2e
mov rsi, r15
mov r8, qword [r14 + 0x10]
lea r8, [r8*2 + 2]
mov rdx, qword [r14]
mov rcx, rsi
call fcn.14015c680
mov rcx, qword [r14]
mov rax, qword [r14 + 0x18]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x140039f79
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14003a19e
mov rcx, r8
call fcn.14013db80
mov qword [r14], rsi
mov qword [r14 + 0x18], rdi
mov rdx, qword [rbp - 0x60]
cmp rdx, 8
jb 0x140039fca
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140039fc0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003a198
call fcn.14013db80
jmp 0x140039fca
xor r15d, r15d
test rbx, rbx
je 0x14003a00f
mov rax, qword [rbp - 0x48]
sub rax, rbx
sar rax, 1
lea rdx, [rax + rax]
mov rax, rbx
cmp rdx, 0x1000
jb 0x14003a002
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003a1a4
mov rcx, rbx
call fcn.14013db80
jmp 0x14003a00f
xor r15d, r15d
mov rdx, qword [rbp - 0x28]
cmp rdx, 0x10
jb 0x14003a04a
inc rdx
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003a045
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003a1aa
call fcn.14013db80
mov qword [rbp - 0x30], r15
mov qword [rbp - 0x28], reloc.OLEAUT32.dll_SafeArrayDestroy
mov byte [rbp - 0x40], 0
mov rdx, qword [rbp + 0x58]
cmp rdx, 0x10
jb 0x14003a096
inc rdx
mov rcx, qword [rbp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003a090
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003a1b0
call fcn.14013db80
nop
mov rcx, qword [rbp + 0x38]
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov rcx, qword [rbp + 0x30]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbp + 0x28]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbp + 0x38], r15
mov qword [rbp + 0x30], r15
mov qword [rbp + 0x28], r15
mov rdx, qword [rbp + 0x18]
cmp rdx, 8
jb 0x14003a101
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003a0fb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003a1b6
call fcn.14013db80
nop
mov rdx, qword [rbp - 8]
cmp rdx, 8
jb 0x14003a13d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003a138
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003a168
call fcn.14013db80
movzx eax, r12b
mov rcx, qword [rbp + 0x60]
xor rcx, rsp
call fcn.14013df50
mov rbx, qword [rsp + 0x1c8]
add rsp, 0x170
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.14015fb1c
nop
call fcn.14015fb1c
nop
call fcn.14015fb1c
nop
call fcn.14015fb1c
int3
call fcn.14015fb1c
nop
call fcn.14015fb1c
nop
call fcn.14015fb1c
int3
call fcn.14015fb1c
nop
call fcn.14015fb1c
nop
call fcn.14015fb1c
nop
call fcn.14015fb1c
nop
call fcn.14015fb1c
nop
call fcn.14015fb1c
nop
call fcn.14015fb1c
int3
mov rax, r8
mov r8d, edx
mov rdx, rax
jmp 0x140039820