Function at 0x140040190
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 - 0x80]
sub rsp, 0x180
mov qword [rbp - 0x78], 0xfffffffffffffffe
mov qword [rsp + 0x1d8], rbx
mov rax, qword [0x14023c048]
xor rax, rsp
mov qword [rbp + 0x70], rax
mov dword [rsp + 0x40], r8d
mov r14, rdx
mov rdi, rcx
movdqa xmm0, xmmword [0x1401e87c0]
movdqu xmmword [rbp - 8], xmm0
xor r12d, r12d
mov word [rbp - 0x18], r12w
xor r13b, r13b
xor eax, eax
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], rax
lea r8, [rsp + 0x30]
mov edx, 0x104
lea rcx, [rbp - 0x50]
call fcn.14002dc00
nop
mov rax, qword [rbp - 0x48]
mov rsi, qword [rbp - 0x50]
sub rax, rsi
sar rax, 1
cmp qword [rdi + 0x18], 8
jb 0x14003f883
mov rdi, qword [rdi]
mov qword [rsp + 0x28], r12
mov dword [rsp + 0x20], r12d
mov r9d, eax
mov r8, rsi
mov rdx, rdi
xor ecx, ecx
call qword [sym.imp.urlmon.dll_URLDownloadToCacheFileW]
test eax, eax
js 0x14003f8fd
mov r13b, 1
mov rdx, 0xffffffffffffffff
nop dword [rax]
inc rdx
cmp word [rsi + rdx*2], 0
jne 0x14003f8b0
mov rax, qword [rbp]
cmp rdx, rax
ja 0x14003f8ed
lea rbx, [rbp - 0x18]
cmp rax, 8
cmovae rbx, qword [rbp - 0x18]
mov qword [rbp - 8], rdx
lea rdi, [rdx + rdx]
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.1401679c0
mov word [rdi + rbx], r12w
jmp 0x14003f8fd
mov r9, rsi
xor r8d, r8d
lea rcx, [rbp - 0x18]
call fcn.14001f490
nop
test rsi, rsi
je 0x14003f93d
mov rax, qword [rbp - 0x40]
sub rax, rsi
sar rax, 1
lea rdx, [rax + rax]
mov rax, rsi
cmp rdx, 0x1000
jb 0x14003f935
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004013d
mov rcx, rsi
call fcn.140148ec0
test r13b, r13b
je 0x1400400d0
xor eax, eax
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
mov qword [rbp + 0x40], rax
mov qword [rbp + 0x48], rax
lea rdx, [rbp - 0x18]
lea rcx, [rbp + 0x10]
call fcn.140035330
nop
mov rsi, qword [rbp + 0x48]
mov r15d, 0xffffffff
mov dword [rsp + 0x38], r15d
xor eax, eax
mov dword [rsp + 0x3c], eax
mov rcx, qword [rbp + 0x38]
test rcx, rcx
je 0x14003f9a4
lea rdx, [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov r15d, dword [rsp + 0x38]
test rsi, rsi
je 0x140040065
test r15d, r15d
je 0x140040065
movsxd r8, r15d
lea rax, [r8 + rsi]
movdqa xmm0, xmmword [0x1401e87d0]
movdqu xmmword [rbp + 0x60], xmm0
mov byte [rbp + 0x50], 0
cmp rsi, rax
je 0x14003f9e0
mov rdx, rsi
lea rcx, [rbp + 0x50]
call fcn.14001f2f0
nop
mov qword [rbp - 0x28], r12
mov qword [rbp - 0x20], reloc.OLEAUT32.dll_SafeArrayDestroy
mov byte [rbp - 0x38], 0
movdqa xmm0, xmmword [0x1401e87d0]
movdqu xmmword [rsp + 0x58], xmm0
mov byte [rsp + 0x48], 0
mov r8d, 5
lea rdx, str._____
lea rcx, [rsp + 0x48]
call fcn.14001f2f0
nop
movdqa xmm0, xmmword [0x1401e87d0]
movdqu xmmword [rbp - 0x60], xmm0
mov byte [rbp - 0x70], 0
mov r8d, SafeArrayCopy
lea rdx, str._meta.charset_s____
lea rcx, [rbp - 0x70]
call fcn.14001f2f0
nop
lea r9, [rbp - 0x38]
lea r8, [rsp + 0x48]
lea rdx, [rbp - 0x70]
lea rcx, [rbp + 0x50]
call fcn.140040ab0
movzx r13d, al
mov rdx, qword [rbp - 0x58]
cmp rdx, 0x10
jb 0x14003fa98
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003fa93
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040143
call fcn.140148ec0
movdqa xmm0, xmmword [0x1401e87d0]
movdqu xmmword [rbp - 0x60], xmm0
mov byte [rbp - 0x70], 0
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x14003fae6
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003fae1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040149
call fcn.140148ec0
test r13b, r13b
je 0x14003ffde
lea r12, [rbp - 0x38]
cmp qword [rbp - 0x20], 0x10
cmovae r12, qword [rbp - 0x38]
add r12, qword [rbp - 0x28]
lea rbx, [rbp - 0x38]
cmp qword [rbp - 0x20], 0x10
cmovae rbx, qword [rbp - 0x38]
movdqa xmm0, xmmword [0x1401e87c0]
movdqu xmmword [rbp - 0x60], xmm0
xor edi, edi
mov word [rbp - 0x70], di
mov rdx, r12
sub rdx, rbx
cmp rdx, 8
jb 0x14003fb3b
lea rcx, [rbp - 0x70]
call fcn.14002c560
mov qword [rbp - 0x60], rdi
mov r8, r12
mov rdx, rbx
lea rcx, [rbp - 0x70]
call fcn.140041f60
nop
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x68]
call fcn.140028260
mov rcx, rax
call fcn.14003edd0
mov edi, eax
mov rdx, qword [rbp - 0x58]
cmp rdx, 8
jb 0x14003fba3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003fb9e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004014f
call fcn.140148ec0
xor r12d, r12d
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
mov r9d, r15d
mov r8, rsi
xor edx, edx
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jle 0x14003ffde
cmp eax, 0x7a
je 0x14003ffde
cmp eax, 0x3ec
je 0x14003ffde
cmp eax, 0x57
je 0x14003ffde
cmp eax, 0x459
je 0x14003ffde
xor ecx, ecx
mov qword [rbp - 0x50], rcx
mov qword [rbp - 0x48], rcx
mov qword [rbp - 0x40], rcx
inc eax
movsxd rdx, eax
lea r8, [rsp + 0x30]
lea rcx, [rbp - 0x50]
call fcn.14002dc00
nop
mov rax, qword [rbp - 0x48]
mov rbx, qword [rbp - 0x50]
sub rax, rbx
sar rax, 1
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbx
mov r9d, r15d
mov r8, rsi
xor edx, edx
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jle 0x14003ff9d
cmp eax, 0x7a
je 0x14003ff9d
cmp eax, 0x3ec
je 0x14003ff9d
cmp eax, 0x57
je 0x14003ff9d
cmp eax, 0x459
je 0x14003ff9d
movdqa xmm0, xmmword [0x1401e87c0]
movdqu xmmword [rbp - 0x60], xmm0
mov word [rbp - 0x70], r12w
mov rsi, 0xffffffffffffffff
mov rdx, rsi
inc rdx
cmp word [rbx + rdx*2], 0
jne 0x14003fc85
lea rcx, [rbp - 0x70]
cmp rdx, 7
ja 0x14003fcb4
mov qword [rbp - 0x60], rdx
lea rdi, [rdx + rdx]
mov r8, rdi
mov rdx, rbx
call fcn.1401679c0
mov word [rbp + rdi - 0x70], r12w
jmp 0x14003fcc0
mov r9, rbx
xor r8d, r8d
call fcn.14001f490
nop
movdqa xmm0, xmmword [0x1401e87c0]
movdqu xmmword [rsp + 0x78], xmm0
mov word [rsp + 0x68], r12w
lea r9, str.__title_
xor r8d, r8d
lea edx, [r8 + 0xa]
lea rcx, [rsp + 0x68]
call fcn.14001f490
nop
movdqa xmm0, xmmword [0x1401e87c0]
movdqu xmmword [rsp + 0x58], xmm0
mov word [rsp + 0x48], r12w
lea r9, str._title_
xor r8d, r8d
lea edx, [r8 + 9]
lea rcx, [rsp + 0x48]
call fcn.14001f490
nop
mov r9, r14
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x48]
lea rcx, [rbp - 0x70]
call fcn.140041170
movzx r13d, al
mov rdx, qword [rsp + 0x60]
cmp rdx, 8
jb 0x14003fd76
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003fd71
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040155
call fcn.140148ec0
movdqa xmm0, xmmword [0x1401e87c0]
movdqu xmmword [rsp + 0x58], xmm0
mov word [rsp + 0x48], r12w
mov rdx, qword [rbp - 0x80]
cmp rdx, 8
jb 0x14003fdcb
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003fdc6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004015b
call fcn.140148ec0
test r13b, r13b
je 0x14003ff5c
mov r8, qword [r14 + 0x10]
movsxd rax, dword [rsp + 0x40]
cmp r8d, eax
jle 0x14003ff5c
mov rcx, rax
cmp rax, r8
ja 0x14003fe06
mov rax, r14
cmp qword [r14 + 0x18], 8
jb 0x14003fdfb
mov rax, qword [r14]
mov qword [r14 + 0x10], rcx
mov word [rax + rcx*2], r12w
jmp 0x14003fe5a
mov rdx, rcx
sub rdx, r8
mov rdi, qword [r14 + 0x18]
mov rax, rdi
sub rax, r8
cmp rdx, rax
ja 0x14003fe49
mov qword [r14 + 0x10], rcx
mov r9, r14
cmp rdi, 8
jb 0x14003fe2b
mov r9, qword [r14]
lea rdi, [r9 + r8*2]
test rdx, rdx
je 0x14003fe3e
movzx eax, r12w
mov rcx, rdx
rep stosw word [rdi], ax
lea rax, [rdx + r8]
mov word [r9 + rax*2], r12w
jmp 0x14003fe5a
mov word [rsp + 0x20], r12w
mov r9, rdx
mov rcx, r14
call fcn.140020ac0
mov rax, qword [r14 + 0x18]
cmp rax, 8
jb 0x14003ff5c
mov rdi, qword [r14 + 0x10]
cmp rdi, 8
jae 0x14003fe7f
mov rcx, r14
call fcn.14002c2e0
jmp 0x14003ff5c
or rdi, 7
movabs rcx, 0x7ffffffffffffffe
cmp rdi, rcx
cmova rdi, rcx
cmp rdi, rax
jae 0x14003ff5c
mov rax, rdi
add rax, 1
cmovb rax, rsi
lea rdx, [rax + rax]
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
jbe 0x14003fec0
mov rdx, rsi
jmp 0x14003fec9
cmp rdx, 0x1000
jb 0x14003fef0
lea rcx, [rdx + 0x27]
cmp rcx, rdx
cmovbe rcx, rsi
call fcn.140148e84
test rax, rax
je 0x140040161
lea rsi, [rax + 0x27]
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x14003ff05
test rdx, rdx
je 0x14003ff02
mov rcx, rdx
call fcn.140148e84
mov rsi, rax
jmp 0x14003ff05
mov rsi, r12
mov r8, qword [r14 + 0x10]
lea r8, [r8*2 + 2]
mov rdx, qword [r14]
mov rcx, rsi
call fcn.1401679c0
mov rcx, qword [r14]
mov rax, qword [r14 + 0x18]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x14003ff50
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14004016d
mov rcx, r8
call fcn.140148ec0
mov qword [r14], rsi
mov qword [r14 + 0x18], rdi
mov rdx, qword [rbp - 0x58]
cmp rdx, 8
jb 0x14003ff9d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003ff97
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040167
call fcn.140148ec0
nop
test rbx, rbx
je 0x14003ffde
mov rax, qword [rbp - 0x40]
sub rax, rbx
sar rax, 1
lea rdx, [rax + rax]
mov rax, rbx
cmp rdx, 0x1000
jb 0x14003ffd5
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040173
mov rcx, rbx
call fcn.140148ec0
nop
mov rdx, qword [rbp - 0x20]
cmp rdx, 0x10
jb 0x140040019
inc rdx
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140040014
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040179
call fcn.140148ec0
mov qword [rbp - 0x28], r12
mov qword [rbp - 0x20], reloc.OLEAUT32.dll_SafeArrayDestroy
mov byte [rbp - 0x38], 0
mov rdx, qword [rbp + 0x68]
cmp rdx, 0x10
jb 0x140040065
inc rdx
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004005f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004017f
call fcn.140148ec0
nop
mov rcx, qword [rbp + 0x48]
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov rcx, qword [rbp + 0x40]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbp + 0x38]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbp + 0x48], r12
mov qword [rbp + 0x40], r12
mov qword [rbp + 0x38], r12
mov rdx, qword [rbp + 0x28]
cmp rdx, 8
jb 0x1400400d0
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400400ca
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040185
call fcn.140148ec0
nop
mov rdx, qword [rbp]
cmp rdx, 8
jb 0x14004010c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140040107
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040137
call fcn.140148ec0
movzx eax, r13b
mov rcx, qword [rbp + 0x70]
xor rcx, rsp
call fcn.140149290
mov rbx, qword [rsp + 0x1d8]
add rsp, 0x180
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.14016ae5c
nop
call fcn.14016ae5c
nop
call fcn.14016ae5c
nop
call fcn.14016ae5c
int3
call fcn.14016ae5c
nop
call fcn.14016ae5c
nop
call fcn.14016ae5c
int3
call fcn.14016ae5c
nop
call fcn.14016ae5c
nop
call fcn.14016ae5c
nop
call fcn.14016ae5c
nop
call fcn.14016ae5c
nop
call fcn.14016ae5c
nop
call fcn.14016ae5c
int3
mov rax, r8
mov r8d, edx
mov rdx, rax
jmp 0x14003f7f0