Function at 0x14003b570
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 [0x14022b078]
xor rax, rsp
mov qword [rbp + 0x60], rax
movsxd r13, r8d
mov r14, rdx
mov rdi, rcx
movdqa xmm0, xmmword [0x1401da830]
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.140025f20
nop
mov rax, qword [rbp - 0x50]
mov rsi, qword [rbp - 0x58]
sub rax, rsi
sar rax, 1
cmp qword [rdi + 0x18], 8
jb 0x14003ac61
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 0x14003acdd
mov r12b, 1
mov rdx, 0xffffffffffffffff
nop word [rax + rax]
inc rdx
cmp word [rsi + rdx*2], 0
jne 0x14003ac90
mov rax, qword [rbp - 8]
cmp rdx, rax
ja 0x14003accd
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.14015dc80
mov word [rdi + rbx], r15w
jmp 0x14003acdd
mov r9, rsi
xor r8d, r8d
lea rcx, [rbp - 0x20]
call fcn.140016ea0
nop
test rsi, rsi
je 0x14003ad1d
mov rax, qword [rbp - 0x48]
sub rax, rsi
sar rax, 1
lea rdx, [rax + rax]
mov rax, rsi
cmp rdx, 0x1000
jb 0x14003ad15
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003b51e
mov rcx, rsi
call fcn.14013f180
test r12b, r12b
je 0x14003b4b1
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.140031950
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 0x14003ad81
lea rdx, [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov esi, dword [rsp + 0x38]
test rdi, rdi
je 0x14003b446
test esi, esi
je 0x14003b446
movsxd r8, esi
lea rax, [r8 + rdi]
movdqa xmm0, xmmword [0x1401da840]
movdqu xmmword [rbp + 0x50], xmm0
mov byte [rbp + 0x40], 0
cmp rdi, rax
je 0x14003adbc
mov rdx, rdi
lea rcx, [rbp + 0x40]
call fcn.14001f940
nop
mov qword [rbp - 0x30], r15
mov qword [rbp - 0x28], reloc.OLEAUT32.dll_SafeArrayDestroy
mov byte [rbp - 0x40], 0
movdqa xmm0, xmmword [0x1401da840]
movdqu xmmword [rsp + 0x50], xmm0
mov byte [rsp + 0x40], 0
mov r8d, 5
lea rdx, str._____
lea rcx, [rsp + 0x40]
call fcn.14001f940
nop
movdqa xmm0, xmmword [0x1401da840]
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.14001f940
nop
lea r9, [rbp - 0x40]
lea r8, [rsp + 0x40]
lea rdx, [rbp - 0x78]
lea rcx, [rbp + 0x40]
call fcn.14003bca0
movzx r12d, al
mov rdx, qword [rbp - 0x60]
cmp rdx, 0x10
jb 0x14003ae74
inc rdx
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003ae6f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003b524
call fcn.14013f180
movdqa xmm0, xmmword [0x1401da840]
movdqu xmmword [rbp - 0x68], xmm0
mov byte [rbp - 0x78], 0
mov rdx, qword [rsp + 0x58]
cmp rdx, 0x10
jb 0x14003aec2
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003aebd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003b52a
call fcn.14013f180
test r12b, r12b
je 0x14003b3bf
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 [0x1401da830]
movdqu xmmword [rbp - 0x68], xmm0
xor eax, eax
mov word [rbp - 0x78], ax
mov rdx, r15
sub rdx, rbx
cmp rdx, 8
jb 0x14003af14
lea rcx, [rbp - 0x78]
call fcn.140024880
xor eax, eax
mov qword [rbp - 0x68], rax
mov r8, r15
mov rdx, rbx
lea rcx, [rbp - 0x78]
call fcn.14003d150
nop
lea rdx, [rbp - 0x78]
lea rcx, [rsp + 0x60]
call fcn.140020720
mov rcx, rax
call fcn.14003a080
mov r15d, eax
mov rdx, qword [rbp - 0x60]
cmp rdx, 8
jb 0x14003af7d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003af78
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003b530
call fcn.14013f180
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 0x14003b3bc
cmp eax, 0x7a
je 0x14003b3bc
cmp eax, 0x3ec
je 0x14003b3bc
cmp eax, 0x57
je 0x14003b3bc
cmp eax, 0x459
je 0x14003b3bc
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.140025f20
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 0x14003b377
cmp eax, 0x7a
je 0x14003b377
cmp eax, 0x3ec
je 0x14003b377
cmp eax, 0x57
je 0x14003b377
xor r15d, r15d
cmp eax, 0x459
je 0x14003b37a
movdqa xmm0, xmmword [0x1401da830]
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 0x14003b062
lea rcx, [rbp - 0x78]
cmp rdx, 7
ja 0x14003b091
mov qword [rbp - 0x68], rdx
lea rdi, [rdx + rdx]
mov r8, rdi
mov rdx, rbx
call fcn.14015dc80
mov word [rbp + rdi - 0x78], r15w
jmp 0x14003b09d
mov r9, rbx
xor r8d, r8d
call fcn.140016ea0
nop
movdqa xmm0, xmmword [0x1401da830]
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.140016ea0
nop
movdqa xmm0, xmmword [0x1401da830]
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.140016ea0
nop
mov r9, r14
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x78]
call fcn.14003c360
movzx r12d, al
mov rdx, qword [rsp + 0x58]
cmp rdx, 8
jb 0x14003b153
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003b14e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003b536
call fcn.14013f180
movdqa xmm0, xmmword [0x1401da830]
movdqu xmmword [rsp + 0x50], xmm0
mov word [rsp + 0x40], r15w
mov rdx, qword [rsp + 0x78]
cmp rdx, 8
jb 0x14003b1a9
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003b1a4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003b53c
call fcn.14013f180
test r12b, r12b
je 0x14003b335
mov r8, qword [r14 + 0x10]
cmp r8d, r13d
jle 0x14003b335
mov rcx, r13
cmp r13, r8
ja 0x14003b1df
mov qword [r14 + 0x10], rcx
mov rax, r14
cmp qword [r14 + 0x18], 8
jb 0x14003b1d8
mov rax, qword [r14]
mov word [rax + r13*2], r15w
jmp 0x14003b233
mov rdx, rcx
sub rdx, r8
mov rdi, qword [r14 + 0x18]
mov rax, rdi
sub rax, r8
cmp rdx, rax
ja 0x14003b222
mov qword [r14 + 0x10], rcx
mov r9, r14
cmp rdi, 8
jb 0x14003b204
mov r9, qword [r14]
lea rdi, [r9 + r8*2]
test rdx, rdx
je 0x14003b217
movzx eax, r15w
mov rcx, rdx
rep stosw word [rdi], ax
lea rax, [rdx + r8]
mov word [r9 + rax*2], r15w
jmp 0x14003b233
mov word [rsp + 0x20], r15w
mov r9, rdx
mov rcx, r14
call fcn.1400181b0
mov rax, qword [r14 + 0x18]
cmp rax, 8
jb 0x14003b335
mov rdi, qword [r14 + 0x10]
cmp rdi, 8
jae 0x14003b258
mov rcx, r14
call fcn.140024600
jmp 0x14003b335
or rdi, 7
movabs rcx, 0x7ffffffffffffffe
cmp rdi, rcx
cmova rdi, rcx
cmp rdi, rax
jae 0x14003b335
mov rax, rdi
add rax, 1
cmovb rax, rsi
lea rdx, [rax + rax]
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
jbe 0x14003b299
mov rdx, rsi
jmp 0x14003b2a2
cmp rdx, 0x1000
jb 0x14003b2c9
lea rcx, [rdx + 0x27]
cmp rcx, rdx
cmovbe rcx, rsi
call fcn.14013f144
test rax, rax
je 0x14003b542
lea rsi, [rax + 0x27]
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x14003b2de
test rdx, rdx
je 0x14003b2db
mov rcx, rdx
call fcn.14013f144
mov rsi, rax
jmp 0x14003b2de
mov rsi, r15
mov r8, qword [r14 + 0x10]
lea r8, [r8*2 + 2]
mov rdx, qword [r14]
mov rcx, rsi
call fcn.14015dc80
mov rcx, qword [r14]
mov rax, qword [r14 + 0x18]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x14003b329
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14003b54e
mov rcx, r8
call fcn.14013f180
mov qword [r14], rsi
mov qword [r14 + 0x18], rdi
mov rdx, qword [rbp - 0x60]
cmp rdx, 8
jb 0x14003b37a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003b370
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003b548
call fcn.14013f180
jmp 0x14003b37a
xor r15d, r15d
test rbx, rbx
je 0x14003b3bf
mov rax, qword [rbp - 0x48]
sub rax, rbx
sar rax, 1
lea rdx, [rax + rax]
mov rax, rbx
cmp rdx, 0x1000
jb 0x14003b3b2
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003b554
mov rcx, rbx
call fcn.14013f180
jmp 0x14003b3bf
xor r15d, r15d
mov rdx, qword [rbp - 0x28]
cmp rdx, 0x10
jb 0x14003b3fa
inc rdx
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003b3f5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003b55a
call fcn.14013f180
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 0x14003b446
inc rdx
mov rcx, qword [rbp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003b440
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003b560
call fcn.14013f180
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 0x14003b4b1
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003b4ab
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003b566
call fcn.14013f180
nop
mov rdx, qword [rbp - 8]
cmp rdx, 8
jb 0x14003b4ed
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003b4e8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003b518
call fcn.14013f180
movzx eax, r12b
mov rcx, qword [rbp + 0x60]
xor rcx, rsp
call fcn.14013f550
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.14016111c
nop
call fcn.14016111c
nop
call fcn.14016111c
nop
call fcn.14016111c
int3
call fcn.14016111c
nop
call fcn.14016111c
nop
call fcn.14016111c
int3
call fcn.14016111c
nop
call fcn.14016111c
nop
call fcn.14016111c
nop
call fcn.14016111c
nop
call fcn.14016111c
nop
call fcn.14016111c
nop
call fcn.14016111c
int3
mov rax, r8
mov r8d, edx
mov rdx, rax
jmp 0x14003abd0