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

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov rax, qword [0x1401f3030]
xor rax, rsp
mov qword [rbp + 0x70], rax
mov dword [rsp + 0x60], r8d
mov r13, rdx
mov rsi, rcx
xor ebx, ebx
mov qword [rbp + 8], rbx
mov qword [rbp + 0x18], rbx
mov qword [rbp + 0x20], 7
mov word [rbp + 8], bx
xor r14b, r14b
xorps xmm0, xmm0
movups xmmword [rbp - 0x78], xmm0
mov ecx, 0x208
call fcn.140149158
mov rdi, rax
mov qword [rbp - 0x78], rax
lea rbx, [rax + 0x208]
mov qword [rbp - 0x68], rbx
xor edx, edx
mov r8d, 0x208
mov rcx, rax
call fcn.14014ba20
mov qword [rbp - 0x70], rbx
cmp qword [rsi + 0x18], 8
jb 0x14003fe6f
mov rsi, qword [rsi]
xor ebx, ebx
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], ebx
mov r9d, 0x104
mov r8, rdi
mov rdx, rsi
xor ecx, ecx
call qword [sym.imp.urlmon.dll_URLDownloadToCacheFileW]
lea rcx, [rbx - 1]
test eax, eax
js 0x14003feb7
mov r14b, 1
mov r8, rcx
nop dword [rax]
inc r8
cmp word [rdi + r8*2], bx
jne 0x14003fea0
mov rdx, rdi
lea rcx, [rbp + 8]
call fcn.140020fa0
nop
test rdi, rdi
je 0x14003fec9
mov edx, 0x208
mov rcx, rdi
call fcn.140149194
test r14b, r14b
je 0x140040567
xorps xmm0, xmm0
movups xmmword [rbp + 0x30], xmm0
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x50], xmm0
movups xmmword [rbp + 0x60], xmm0
lea rdx, [rbp + 8]
lea rcx, [rbp + 0x30]
call fcn.140036680
nop
mov r15, qword [rbp + 0x68]
mov r12d, 0xffffffff
mov dword [rsp + 0x38], r12d
xor eax, eax
mov dword [rsp + 0x3c], eax
mov rcx, qword [rbp + 0x58]
test rcx, rcx
je 0x14003ff21
lea rdx, [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov r12d, dword [rsp + 0x38]
test r15, r15
je 0x1400404fc
test r12d, r12d
je 0x1400404fc
movsxd r8, r12d
lea rax, [r8 + r15]
mov qword [rbp - 0x18], rbx
mov qword [rbp - 8], rbx
mov qword [rbp], reloc.OLEAUT32.dll_SafeArrayDestroy
mov byte [rbp - 0x18], 0
cmp r15, rax
je 0x14003ff60
mov rdx, r15
lea rcx, [rbp - 0x18]
call fcn.140020cc0
nop
mov qword [rbp - 0x58], rbx
mov qword [rbp - 0x48], rbx
mov qword [rbp - 0x40], reloc.OLEAUT32.dll_SafeArrayDestroy
mov byte [rbp - 0x58], 0
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], reloc.OLEAUT32.dll_SafeArrayDestroy
mov byte [rsp + 0x40], 0
mov r8d, 5
lea rdx, str._____
lea rcx, [rsp + 0x40]
call fcn.140020cc0
nop
mov qword [rbp - 0x78], rbx
mov qword [rbp - 0x68], rbx
mov qword [rbp - 0x60], reloc.OLEAUT32.dll_SafeArrayDestroy
mov byte [rbp - 0x78], 0
mov r8d, SafeArrayCopy
lea rdx, str._meta.charset_s____
lea rcx, [rbp - 0x78]
call fcn.140020cc0
nop
lea r9, [rbp - 0x58]
lea r8, [rsp + 0x40]
lea rdx, [rbp - 0x78]
lea rcx, [rbp - 0x18]
call fcn.140040750
movzx r14d, al
mov byte [rsp + 0x30], al
mov rdx, qword [rbp - 0x60]
cmp rdx, 0x10
jb 0x140040028
inc rdx
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140040023
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400405d4
call fcn.140149194
mov qword [rbp - 0x68], rbx
mov qword [rbp - 0x60], reloc.OLEAUT32.dll_SafeArrayDestroy
mov byte [rbp - 0x78], 0
mov rdx, qword [rsp + 0x58]
cmp rdx, 0x10
jb 0x140040075
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140040070
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400405da
call fcn.140149194
test r14b, r14b
je 0x140040475
lea rcx, [rbp - 0x58]
call fcn.14003f5b0
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rbx
mov r9d, r12d
mov r8, r15
xor edx, edx
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jle 0x140040475
cmp eax, 0x7a
je 0x140040475
cmp eax, 0x3ec
je 0x140040475
cmp eax, 0x57
je 0x140040475
cmp eax, 0x459
je 0x140040475
xorps xmm0, xmm0
add eax, 1
movsxd rsi, eax
movdqu xmmword [rbp - 0x78], xmm0
mov r14, rbx
mov qword [rbp - 0x68], rbx
mov rax, rbx
je 0x140040173
movabs rax, 0x7fffffffffffffff
cmp rsi, rax
ja 0x1400405e0
add rsi, rsi
cmp rsi, 0x1000
jb 0x14004013a
lea rcx, [rsi + 0x27]
cmp rcx, rsi
jbe 0x1400405e6
call fcn.140149158
test rax, rax
je 0x140040604
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x14004014e
test rsi, rsi
je 0x14004014c
mov rcx, rsi
call fcn.140149158
mov rbx, rax
jmp 0x14004014e
xor ebx, ebx
mov rdi, rbx
mov qword [rbp - 0x78], rbx
lea r14, [rbx + rsi]
mov qword [rbp - 0x68], r14
mov r8, rsi
xor edx, edx
mov rcx, rbx
call fcn.14014ba20
mov rax, r14
mov qword [rbp - 0x70], rax
jmp 0x140040177
mov rdi, qword [rbp - 0x78]
sub rax, rbx
sar rax, 1
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rdi
mov r9d, r12d
mov r8, r15
xor edx, edx
mov ecx, dword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jle 0x140040431
cmp eax, 0x7a
je 0x140040431
cmp eax, 0x3ec
je 0x140040431
cmp eax, 0x57
je 0x140040431
cmp eax, 0x459
je 0x140040431
xor esi, esi
mov qword [rbp - 0x38], rsi
mov qword [rbp - 0x28], rsi
mov qword [rbp - 0x20], 7
mov word [rbp - 0x38], si
mov r15, 0xffffffffffffffff
mov r8, r15
nop dword [rax + rax]
inc r8
cmp word [rbx + r8*2], si
jne 0x1400401f0
mov rdx, rbx
lea rcx, [rbp - 0x38]
call fcn.140020fa0
nop
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x78], rsi
mov qword [rbp - 0x80], 7
mov word [rsp + 0x68], si
mov r8d, 0xa
lea rdx, str.__title_
lea rcx, [rsp + 0x68]
call fcn.140020fa0
nop
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x58], 7
mov word [rsp + 0x40], si
mov r8d, 9
lea rdx, str._title_
lea rcx, [rsp + 0x40]
call fcn.140020fa0
nop
mov r9, r13
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x38]
call fcn.140041100
movzx ebx, al
mov byte [rsp + 0x30], al
mov rdx, qword [rsp + 0x58]
cmp rdx, 8
jb 0x1400402c5
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400402c0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400405ec
call fcn.140149194
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x58], 7
mov word [rsp + 0x40], si
mov rdx, qword [rbp - 0x80]
cmp rdx, 8
jb 0x140040319
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140040314
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400405f2
call fcn.140149194
test bl, bl
je 0x1400403f0
movsxd rax, dword [rsp + 0x60]
cmp dword [r13 + 0x10], eax
jle 0x1400403f0
xor r8d, r8d
mov rdx, rax
mov rcx, r13
call fcn.140022a80
mov rax, qword [r13 + 0x18]
cmp rax, 8
jb 0x1400403f0
mov rbx, qword [r13 + 0x10]
cmp rbx, 8
jae 0x140040363
mov rcx, r13
call fcn.140040660
jmp 0x1400403f0
or rbx, 7
movabs rcx, 0x7ffffffffffffffe
cmp rbx, rcx
cmova rbx, rcx
cmp rbx, rax
jae 0x1400403f0
mov rdx, rbx
add rdx, 1
cmovb rdx, r15
mov rcx, r13
call fcn.1400213c0
mov rsi, rax
mov r8, qword [r13 + 0x10]
lea r8, [r8*2 + 2]
mov rdx, qword [r13]
mov rcx, rax
call fcn.14014b350
mov r8, qword [r13]
mov rcx, qword [r13 + 0x18]
lea rdx, [rcx*2 + 2]
cmp rdx, 0x1000
jb 0x1400403e0
add rdx, 0x27
mov rcx, qword [r8 - 8]
sub r8, rcx
lea rax, [r8 - 8]
cmp rax, 0x1f
ja 0x1400405fe
mov r8, rcx
mov rcx, r8
call fcn.140149194
mov qword [r13], rsi
mov qword [r13 + 0x18], rbx
mov rdx, qword [rbp - 0x20]
cmp rdx, 8
jb 0x140040431
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004042b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400405f8
call fcn.140149194
nop
test rdi, rdi
je 0x14004046d
sub r14, rdi
sar r14, 1
lea rdx, [r14 + r14]
mov rax, rdi
cmp rdx, 0x1000
jb 0x140040465
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040604
mov rcx, rdi
call fcn.140149194
xor ebx, ebx
movzx r14d, byte [rsp + 0x30]
mov rdx, qword [rbp - 0x40]
cmp rdx, 0x10
jb 0x1400404b0
inc rdx
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400404ab
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004060a
call fcn.140149194
mov qword [rbp - 0x48], rbx
mov qword [rbp - 0x40], reloc.OLEAUT32.dll_SafeArrayDestroy
mov byte [rbp - 0x58], 0
mov rdx, qword [rbp]
cmp rdx, 0x10
jb 0x1400404fc
inc rdx
mov rcx, qword [rbp - 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400404f6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040610
call fcn.140149194
nop
mov rcx, qword [rbp + 0x68]
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov rcx, qword [rbp + 0x60]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbp + 0x58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbp + 0x68], rbx
mov qword [rbp + 0x60], rbx
mov qword [rbp + 0x58], rbx
mov rdx, qword [rbp + 0x48]
cmp rdx, 8
jb 0x140040567
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140040561
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040616
call fcn.140149194
nop
mov rdx, qword [rbp + 0x20]
cmp rdx, 8
jb 0x1400405a3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004059e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400405ce
call fcn.140149194
movzx eax, r14b
mov rcx, qword [rbp + 0x70]
xor rcx, rsp
call fcn.140149500
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.1401501d4
nop
call fcn.1401501d4
nop
call fcn.1401501d4
int3
call fcn.1400243d0
int3
call fcn.1400213a0
nop
call fcn.1401501d4
nop
call fcn.1401501d4
nop
call fcn.1401501d4
nop
call fcn.1401501d4
nop
call fcn.1401501d4
nop
call fcn.1401501d4
nop
call fcn.1401501d4
nop
call fcn.1401501d4
int3
mov rax, r8
mov r8d, edx
mov rdx, rax
jmp 0x14003fde0