Function at 0x1400863a0
Capabilities:
Read file on windows

Disassembly:
push rbp
push rbx
lea rbp, [rsp - 0x4f]
sub rsp, 0x88
cmp byte [rcx + 0x2c0], 0
mov rbx, rcx
je 0x1400863ca
call fcn.1400248c0
add rsp, 0x88
pop rbx
pop rbp
ret
cmp byte [rcx + 0x31c], 0
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x60], r14
je 0x140086519
mov rdx, qword [rbx + 0x2e0]
mov ecx, dword [rcx + 0x2a8]
mov eax, edx
cmp rdx, rcx
cmovge eax, ecx
xor r14d, r14d
mov edi, eax
sub rdx, rdi
mov dword [rbp + 0x6f], edi
mov qword [rbx + 0x2e0], rdx
test eax, eax
je 0x140086447
mov rdx, qword [rbx + 0x2a0]
lea r9, [rbp + 0x7f]
mov rcx, qword [rbx + 0x70]
mov r8d, edi
mov dword [rbp + 0x7f], r14d
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140086436
cmp dword [rbp + 0x7f], edi
je 0x140086447
mov rcx, qword [rbx + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x18]
xor eax, eax
jmp 0x140086f1e
mov rax, r14
test edi, edi
je 0x140086455
mov rax, qword [rbx + 0x2a0]
mov rdx, qword [rbx + 0x2b0]
lea r9, [rbp - 9]
mov rcx, qword [rbx + 0x338]
lea r8, [rbp + 0x77]
mov qword [rbp - 9], rax
mov eax, dword [rbx + 0x2c]
mov dword [rsp + 0x28], eax
lea rax, [rbp + 0x6f]
mov qword [rsp + 0x20], rax
mov dword [rbp + 0x77], r14d
call fcn.14002bdd0
mov ecx, eax
mov edx, eax
shr ecx, 0x1f
test cl, cl
jne 0x1400864d1
mov r8d, dword [rbp + 0x77]
test r8d, r8d
je 0x1400864d8
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x2b0]
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov edx, eax
shr eax, 0x1f
test al, al
je 0x1400864de
test edi, edi
jne 0x1400864d1
mov eax, edx
shr eax, 0x1f
not al
test al, 1
je 0x1400864d1
mov rcx, qword [rbx + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov edx, eax
mov eax, edx
jmp 0x140086f1e
cmp dword [rbp + 0x6f], r14d
je 0x1400864b6
mov eax, dword [rbx + 0x2c]
lea r9, [rbp - 9]
mov rdx, qword [rbx + 0x2b0]
lea r8, [rbp + 0x77]
mov rcx, qword [rbx + 0x338]
mov dword [rsp + 0x28], eax
lea rax, [rbp + 0x6f]
mov qword [rsp + 0x20], rax
call fcn.14002bdd0
mov edx, eax
shr eax, 0x1f
test al, al
je 0x140086493
mov eax, edx
jmp 0x140086f1e
movzx eax, word [rcx + 0x2c8]
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x68], r13
cmp eax, 0x303
ja 0x140086e79
je 0x140086de5
add eax, 0xfffffffe
cmp eax, 0xfd
ja case.0x140086567.3
lea rdx, [0x140000000]
cdqe
movzx eax, byte [rdx + rax + 0x86f60]
mov ecx, dword [rdx + rax*4 + 0x86f34]
add rcx, rdx
jmp rcx
mov eax, dword [rbx + 0x2cc]
mov rdi, qword [rbx + 0x2e0]
cmp rdi, rax
cmovge edi, eax
mov dword [rbp + 0x6f], edi
test edi, edi
je 0x140086e68
mov rdx, qword [rbx + 0x2a0]
lea r9, [rbp + 0x77]
mov rcx, qword [rbx + 0x70]
xor r14d, r14d
mov r8d, edi
mov dword [rbp + 0x77], r14d
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1400865eb
cmp dword [rbp + 0x77], edi
jne 0x1400865eb
mov r9d, dword [rbp + 0x6f]
lea rcx, [rbx + 0x338]
mov r8, qword [rbx + 0x2a0]
mov rdx, qword [rbx + 0x2b0]
sub qword [rbx + 0x2e0], r9
call fcn.1400461f0
mov edx, eax
mov dword [rbp + 0x67], eax
mov rcx, rbx
call fcn.140025060
jmp 0x140086f11
mov rcx, qword [rbx + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rcx, [rbx + 0x338]
call fcn.140046b90
xor eax, eax
jmp 0x140086f11
mov eax, dword [rbx + 0x2cc]
mov rdi, qword [rbx + 0x2e0]
cmp rdi, rax
cmovge edi, eax
mov dword [rbp + 0x6f], edi
test edi, edi
je 0x140086e68
mov rdx, qword [rbx + 0x2a0]
lea r9, [rbp + 0x77]
mov rcx, qword [rbx + 0x70]
xor r14d, r14d
mov r8d, edi
mov dword [rbp + 0x77], r14d
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140086e68
cmp dword [rbp + 0x77], edi
jne 0x140086e68
mov eax, dword [rbp + 0x6f]
xor edx, edx
sub qword [rbx + 0x2e0], rax
mov r13d, r14d
mov r8d, dword [rbx + 0x20]
div r8d
lea ecx, [rax*2 - 7]
mov eax, dword [rbx + 0x5c8]
cmp eax, ecx
cmovae eax, ecx
mov edx, eax
mov rax, qword [rbx + 0x2b8]
cmp rdx, rax
cmovge edx, eax
mov dword [rbp + 0x67], edx
test r8d, r8d
je 0x140086e5b
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x58], r15
movaps xmmword [rsp + 0x40], xmm6
movss xmm6, dword [0x14012bff4]
nop word [rax + rax]
mov rax, qword [rbx + 0x2a0]
lea r9d, [r13*4]
mov edx, r13d
mov esi, r14d
mov dword [rbp + 0x77], 1
mov edi, r14d
mov r12d, r14d
movsx r8d, word [r9 + rax]
mov dword [rbx + rdx*8 + 0x338], r8d
mov rax, qword [rbx + 0x2a0]
movd xmm0, r8d
cvtdq2ps xmm0, xmm0
movzx ecx, byte [r9 + rax + 2]
mov dword [rbx + rdx*8 + 0x33c], ecx
mov rax, qword [rbx + 0x2b0]
mulss xmm0, xmm6
mov rax, qword [rax + rdx*8]
mov qword [rbp + 0x7f], rax
movss dword [rax], xmm0
mov eax, dword [rbx + 0x20]
mov edx, dword [rbp + 0x67]
lea r15, [r9 + rax*4]
add r15, qword [rbx + 0x2a0]
cmp edx, 1
jbe 0x1400867b2
lea r10, [rbx + 0x338]
nop
mov r9d, dword [rbx + 0x2ac]
cmp edi, r9d
jae 0x140086770
mov eax, esi
mov ecx, edi
inc esi
movzx edx, byte [rax + r15]
shl edx, cl
or r12d, edx
cmp esi, 4
jne 0x14008676d
mov eax, dword [rbx + 0x20]
mov esi, r14d
shl eax, 2
add r15, rax
add edi, 8
mov ecx, r9d
mov r8d, 1
shl r8d, cl
mov edx, r13d
dec r8d
sub edi, r9d
and r8d, r12d
shr r12d, cl
mov rcx, r10
call fcn.14003da00
mov ecx, dword [rbp + 0x77]
lea r10, [rbx + 0x338]
mov rdx, qword [rbp + 0x7f]
movss dword [rdx + rcx*4], xmm0
inc ecx
mov edx, dword [rbp + 0x67]
mov dword [rbp + 0x77], ecx
cmp ecx, edx
jb 0x140086740
inc r13d
cmp r13d, dword [rbx + 0x20]
jb 0x1400866c0
movaps xmm6, xmmword [rsp + 0x40]
mov rcx, rbx
mov r15, qword [rsp + 0x58]
mov r12, qword [rsp + 0x70]
call fcn.140025060
jmp 0x140086f11
mov r8, qword [rbx + 0x2b8]
lea rdx, [rbx + 0x70]
mov ecx, dword [rbx + 0x2c]
mov r9d, 0xfffffffe
mov eax, ecx
and ecx, r9d
and rax, r9
cmp r8, rax
cmovge r8d, ecx
lea rcx, [rbx + 0x320]
lea r9d, [r8 + 1]
mov r8, qword [rbx + 0x2a0]
shr r9d, 1
call fcn.1400235f0
test al, al
je 0x140086e68
xor r14d, r14d
lea rcx, [rbx + 0x320]
mov dword [rbp + 0x67], r14d
lea edx, [r14 + 8]
call fcn.140022fb0
test al, al
je 0x14008688a
nop dword [rax + rax]
mov edx, 8
lea rcx, [rbx + 0x320]
call fcn.140024520
mov edx, dword [rbp + 0x67]
mov r8d, eax
mov rax, qword [rbx + 0x2b0]
mov rcx, qword [rax]
lea rdx, [rcx + rdx*4]
lea rcx, [rbx + 0x338]
call fcn.14002ddf0
add dword [rbp + 0x67], 2
lea rcx, [rbx + 0x320]
mov edx, 8
call fcn.140022fb0
test al, al
jne 0x140086840
mov edx, dword [rbp + 0x67]
mov rcx, rbx
call fcn.140025060
jmp 0x140086f11
mov ecx, dword [rbx + 0x2c]
xor edx, edx
mov r8, qword [rbx + 0x2a0]
mov eax, ecx
div dword [rbx + 0x5c8]
sub ecx, edx
lea rdx, [rbx + 0x70]
mov eax, ecx
mov rcx, qword [rbx + 0x2b8]
cmp rcx, rax
cmovge ecx, eax
imul ecx, dword [rbx + 0x2ac]
lea r9d, [rcx + 7]
shr r9d, 3
lea rcx, [rbx + 0x320]
call fcn.1400235f0
test al, al
je 0x140086e68
mov edx, dword [rbx + 0x2ac]
lea rcx, [rbx + 0x320]
xor r14d, r14d
mov dword [rbp + 0x67], r14d
call fcn.140022f70
test al, al
je 0x14008688a
mov edx, dword [rbx + 0x2ac]
lea rcx, [rbx + 0x320]
call fcn.140024500
movzx edx, al
lea rcx, [rbx + 0x338]
call qword [rbx + 0x370]
mov edx, dword [rbp + 0x67]
movsx ecx, ax
mov rax, qword [rbx + 0x2b0]
movd xmm0, ecx
mov rcx, qword [rax]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [rbx + 0x36c]
movss dword [rcx + rdx*4], xmm0
lea rcx, [rbx + 0x320]
mov edx, dword [rbx + 0x2ac]
inc dword [rbp + 0x67]
call fcn.140022f70
test al, al
jne 0x140086903
mov edx, dword [rbp + 0x67]
mov rcx, rbx
call fcn.140025060
jmp 0x140086f11
mov eax, dword [rbx + 0x2cc]
mov rdi, qword [rbx + 0x2e0]
cmp rdi, rax
cmovge edi, eax
mov dword [rbp + 0x6f], edi
test edi, edi
je 0x140086e68
mov rdx, qword [rbx + 0x2a0]
lea r9, [rbp + 0x77]
mov rcx, qword [rbx + 0x70]
xor r14d, r14d
mov r8d, edi
mov dword [rbp + 0x77], r14d
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140086e68
cmp dword [rbp + 0x77], edi
jne 0x140086e68
mov r9d, dword [rbp + 0x6f]
sub qword [rbx + 0x2e0], r9
mov r8, qword [rbx + 0x2a0]
jmp 0x140086e40
mov r8d, dword [rbx + 0x20]
xor r14d, r14d
mov rdx, qword [rbx + 0x2b0]
xor r9d, r9d
mov rcx, qword [rbx + 0x340]
mov qword [rsp + 0x20], r14
call fcn.14003f330
mov dword [rbp + 0x67], eax
mov edx, eax
test eax, eax
je 0x140086f07
mov eax, dword [rbx + 0x34c]
test eax, eax
je 0x140086e5b
cmp eax, edx
mov r9d, edx
cmovb r9d, eax
sub eax, r9d
sub edx, r9d
mov dword [rbx + 0x34c], eax
mov dword [rbp + 0x67], edx
je 0x140086e72
mov rcx, qword [rbx + 0x2b0]
mov dword [rsp + 0x20], edx
mov r8, rcx
xor edx, edx
call fcn.140027780
mov edx, dword [rbp + 0x67]
mov rcx, rbx
call fcn.140025060
jmp 0x140086f11
mov rdx, qword [rbx + 0x2e0]
mov ecx, dword [rbx + 0x2a8]
mov eax, edx
mov r8d, dword [rbx + 0x350]
sub ecx, r8d
cmp rdx, rcx
cmovge eax, ecx
mov edi, eax
sub rdx, rdi
mov dword [rbp + 0x6f], edi
mov qword [rbx + 0x2e0], rdx
test eax, eax
je 0x140086e68
mov rcx, qword [rbx + 0x70]
lea r9, [rbp + 0x77]
mov edx, r8d
xor r14d, r14d
add rdx, qword [rbx + 0x2a0]
mov r8d, edi
mov dword [rbp + 0x77], r14d
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140086e68
cmp dword [rbp + 0x77], edi
jne 0x140086e68
mov eax, dword [rbp + 0x6f]
lea r8, [rbp + 0x67]
add dword [rbx + 0x350], eax
mov eax, dword [rbx + 0x2c]
mov ecx, dword [rbx + 0x350]
mov r9, qword [rbx + 0x2a0]
mov rdx, qword [rbx + 0x2b0]
mov dword [rbp + 0x67], eax
lea rax, [rbp + 0x7f]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ecx
mov rcx, qword [rbx + 0x338]
call fcn.14003e5d0
mov ecx, eax
shr ecx, 0x1f
test cl, cl
jne 0x140086f11
mov eax, dword [rbp + 0x7f]
test eax, eax
je 0x140086b40
sub dword [rbx + 0x350], eax
je 0x140086b40
mov rcx, qword [rbx + 0x2a0]
mov r8d, dword [rbx + 0x350]
lea rdx, [rcx + rax]
call fcn.1400b9e30
mov eax, dword [rbp + 0x7f]
mov r8d, dword [rbp + 0x67]
test r8d, r8d
je 0x140086b6c
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x2b0]
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov ecx, eax
shr ecx, 0x1f
test cl, cl
je 0x140086e72
jmp 0x140086f11
test eax, eax
jne 0x140086e72
jmp 0x140086f07
mov ecx, dword [rbx + 0x2c]
xor edx, edx
mov r8, qword [rbx + 0x2a0]
mov eax, ecx
div dword [rbx + 0x5c8]
sub ecx, edx
lea rdx, [rbx + 0x70]
mov eax, ecx
mov rcx, qword [rbx + 0x2b8]
cmp rcx, rax
cmovge ecx, eax
imul ecx, dword [rbx + 0x2ac]
lea r9d, [rcx + 7]
shr r9d, 3
lea rcx, [rbx + 0x320]
call fcn.1400235f0
test al, al
jne 0x140086bd2
lea rcx, [rbx + 0x338]
call fcn.140049530
jmp 0x140086f07
mov edx, dword [rbx + 0x2ac]
lea rcx, [rbx + 0x320]
xor r14d, r14d
mov dword [rbp + 0x67], r14d
call fcn.140022fb0
test al, al
je 0x14008688a
mov edx, dword [rbx + 0x2ac]
lea rcx, [rbx + 0x320]
call fcn.140024520
mov edx, eax
lea rcx, [rbx + 0x338]
call fcn.140049160
mov edx, dword [rbp + 0x67]
mov rax, qword [rbx + 0x2b0]
mov rcx, qword [rax]
movss dword [rcx + rdx*4], xmm0
lea rcx, [rbx + 0x320]
mov edx, dword [rbx + 0x2ac]
inc dword [rbp + 0x67]
call fcn.140022fb0
test al, al
jne 0x140086bf3
mov edx, dword [rbp + 0x67]
mov rcx, rbx
call fcn.140025060
jmp 0x140086f11
mov ecx, dword [rbx + 0x2c]
mov r9d, 0xfffffffe
mov rdx, qword [rbx + 0x2b8]
mov eax, ecx
mov r8, qword [rbx + 0x2a0]
and ecx, r9d
and rax, r9
cmp rdx, rax
cmovge edx, ecx
lea rcx, [rbx + 0x320]
lea r9d, [rdx*4 + 7]
shr r9d, 3
lea rdx, [rbx + 0x70]
call fcn.1400235f0
test al, al
je 0x140086f07
xor r14d, r14d
lea rcx, [rbx + 0x320]
mov dword [rbp + 0x67], r14d
lea edx, [r14 + 4]
call fcn.140022f70
test al, al
je 0x14008688a
nop word [rax + rax]
mov edx, 4
lea rcx, [rbx + 0x320]
call fcn.140024500
mov edx, eax
lea rcx, [rbx + 0x338]
call fcn.14002d7d0
mov edx, dword [rbp + 0x67]
mov rax, qword [rbx + 0x2b0]
mov rcx, qword [rax]
movss dword [rcx + rdx*4], xmm0
mov edx, 4
inc dword [rbp + 0x67]
lea rcx, [rbx + 0x320]
call fcn.140022f70
test al, al
jne 0x140086cc0
mov edx, dword [rbp + 0x67]
mov rcx, rbx
call fcn.140025060
jmp 0x140086f11
mov ecx, dword [rbx + 0x2c]
mov r9d, 0xfffffffe
mov rdx, qword [rbx + 0x2b8]
mov eax, ecx
mov r8, qword [rbx + 0x2a0]
and ecx, r9d
and rax, r9
cmp rdx, rax
cmovge edx, ecx
lea rcx, [rbx + 0x320]
lea r9d, [rdx*4 + 7]
shr r9d, 3
lea rdx, [rbx + 0x70]
call fcn.1400235f0
test al, al
je 0x140086e68
mov eax, dword [rbx + 0x20]
xor r14d, r14d
mov edx, r14d
mov dword [rbp + 0x67], edx
mov edi, r14d
test eax, eax
je 0x140086dda
nop word [rax + rax]
mov edx, 4
lea rcx, [rbx + 0x320]
call fcn.140022fb0
test al, al
je 0x140086dd7
mov edx, 4
lea rcx, [rbx + 0x320]
call fcn.140024520
mov edx, eax
lea rcx, [rbx + 0x338]
call fcn.1400499d0
mov rax, qword [rbx + 0x2b0]
inc edi
mov ecx, dword [rbp + 0x67]
mov rax, qword [rax]
movss dword [rax + rcx*4], xmm0
mov edx, dword [rbp + 0x67]
inc edx
mov dword [rbp + 0x67], edx
cmp edi, dword [rbx + 0x20]
jb 0x140086d80
jmp 0x140086dda
mov edx, dword [rbp + 0x67]
mov eax, dword [rbx + 0x20]
cmp edi, eax
jne 0x140086e5b
inc edx
jmp 0x140086d6b
mov rax, qword [rcx + 0x2e0]
lea r9, [rbp + 0x77]
mov rdx, qword [rcx + 0x2a0]
mov edi, 0x26
mov rcx, qword [rcx + 0x70]
cmp rax, rdi
cmovl edi, eax
xor r14d, r14d
mov r8d, edi
mov dword [rbp + 0x77], r14d
mov qword [rsp + 0x20], r14
mov dword [rbp + 0x6f], edi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140086e68
cmp dword [rbp + 0x77], edi
jne 0x140086e68
mov eax, dword [rbp + 0x6f]
lea r9d, [r14 + 0x21]
sub qword [rbx + 0x2e0], rax
mov r8, qword [rbx + 0x2a0]
add r8, 2
mov rdx, qword [rbx + 0x2b0]
lea rcx, [rbx + 0x338]
mov rdx, qword [rdx]
call fcn.140038f50
mov edx, eax
mov dword [rbp + 0x67], eax
mov rcx, rbx
call fcn.140025060
jmp 0x140086f11
mov rcx, qword [rbx + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x18]
xor eax, eax
jmp 0x140086f11
cmp eax, 0x674f
je 0x140086e8a
mov eax, 0x80040200
jmp 0x140086f11
mov rdi, qword [rcx + 0x18]
nop
mov edx, dword [rbx + 0x2c]
lea r8, [rbp + 0x77]
cmp rdi, rdx
mov ecx, edi
cmovge ecx, edx
mov rdx, qword [rbx + 0x2b0]
mov dword [rbp + 0x77], ecx
mov rcx, qword [rbx + 0x338]
call fcn.140047730
mov ecx, eax
shr ecx, 0x1f
test cl, cl
jne 0x140086f11
mov r8d, dword [rbp + 0x77]
sub rdi, r8
cmp eax, 1
je 0x140086ed4
test rdi, rdi
je 0x140086ed4
xor sil, sil
jmp 0x140086ed7
mov sil, 1
test r8d, r8d
je 0x140086ef6
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x2b0]
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov ecx, eax
shr ecx, 0x1f
test cl, cl
jne 0x140086f11
test sil, sil
je 0x140086e90
mov rcx, qword [rbx + 0x338]
call fcn.140047d30
mov rcx, qword [rbx + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov r13, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x78]
mov r14, qword [rsp + 0x60]
add rsp, 0x88
pop rbx
pop rbp
ret