Function at 0x140077060
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa8
xor r9d, r9d
mov r13, rcx
mov rcx, qword [rcx + 0x70]
xor r8d, r8d
lea edx, [r9 + 4]
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
mov rcx, qword [r13 + 0x70]
lea r9, [rsp + 0x100]
xor r12d, r12d
lea rdx, [rsp + 0xf8]
mov dword [rsp + 0x100], r12d
mov qword [rsp + 0x20], r12
lea r8d, [r12 + 1]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov r9d, dword [r13 + 0x2a8]
lea rbp, [r13 + 0x2c8]
mov r8, qword [r13 + 0x2a0]
lea rdx, [r13 + 0x70]
mov rcx, rbp
mov qword [rsp + 0x40], rbp
call fcn.140077d20
mov rcx, rbp
mov qword [r13 + 0x18], r12
cmp byte [rsp + 0xf8], r12b
jbe 0x1400771b7
lea edx, [r12 + 2]
call fcn.140076650
mov edx, eax
mov rcx, rbp
call fcn.140076650
lea edx, [r12 + 2]
mov dword [rsp + 0x5c], eax
mov rcx, rbp
mov r15d, eax
call fcn.140076650
mov edx, eax
mov rcx, rbp
call fcn.140076650
lea edx, [r12 + 2]
mov dword [r13 + 0x20], eax
mov rcx, rbp
call fcn.140076650
mov edx, eax
mov rcx, rbp
call fcn.140076650
lea edx, [r12 + 2]
mov dword [rsp + 0x100], eax
mov rcx, rbp
mov edi, eax
call fcn.140076650
mov edx, eax
mov rcx, rbp
call fcn.140076650
lea edx, [r12 + 2]
mov rcx, rbp
mov esi, eax
call fcn.140076650
mov edx, eax
mov rcx, rbp
call fcn.140076650
lea edx, [r12 + 2]
mov dword [rsp + 0x38], eax
mov rcx, rbp
mov r14d, eax
call fcn.140076650
mov edx, eax
mov rcx, rbp
call fcn.140076650
mov ebx, eax
test eax, eax
je 0x1400771ed
mov edx, 7
mov rcx, rbp
call fcn.140076650
sub ebx, 1
jne 0x1400771a3
jmp 0x1400771ed
mov edx, 4
call fcn.140076650
xor edx, edx
mov dword [rsp + 0x5c], eax
mov rcx, rbp
mov r15d, eax
call fcn.140076650
mov edi, 0x100
mov dword [r13 + 0x20], eax
mov dword [rsp + 0x100], edi
mov esi, r12d
mov r14d, r12d
mov dword [rsp + 0x38], r12d
mov ecx, dword [r13 + 0x20]
mov eax, 3
cmp esi, eax
mov dword [rsp + 0x30], r12d
mov ebx, esi
cmovl ebx, eax
lea edx, [rbx + rdi]
call fcn.140078ef0
mov ecx, dword [r13 + 0x20]
mov r12, rax
mov qword [rsp + 0x70], rax
cmp r14d, 1
mov eax, 1
mov edi, r14d
cmovl edi, eax
mov edx, edi
call fcn.140078ef0
mov qword [rsp + 0x60], rax
mov r14, rax
lea r8, [0x140000000]
lea r9, [r13 + 0x2f4]
cmp r15d, 2
je 0x14007726d
lea ecx, [r15 - 4]
mov rdx, r9
test ecx, 0xfffffffd
je 0x14007725b
xor ecx, ecx
jmp 0x140077260
mov ecx, 0x8000
lea eax, [r15 - 1]
mov dword [rdx], ecx
cmp eax, 9
ja 0x1400772ac
jmp 0x140077278
mov dword [r9], pe_nt_image_headers64
lea eax, [r15 - 1]
cdqe
mov ecx, dword [r8 + rax*4 + 0x77ca4]
add rcx, r8
jmp rcx
mov dword [r13 + 0x2f0], 0x3c000000
jmp 0x1400772ac
mov dword [r13 + 0x2f0], 0x38000000
jmp 0x1400772ac
xor r15d, r15d
movsxd rdx, ebx
mov r11d, r15d
mov qword [rsp + 0x68], rdx
cmp dword [r13 + 0x20], r15d
jbe 0x140077320
lea rbx, [rdx*4]
movsxd r10, edi
nop dword [rax + rax]
mov r8d, r11d
mov rcx, r15
test rdx, rdx
jle 0x1400772f0
nop dword [rax + rax]
mov rax, qword [r12 + r8*8]
mov dword [rax + rcx*4], r15d
inc rcx
cmp rcx, rdx
jl 0x1400772e0
add qword [r12 + r8*8], rbx
mov rdx, r15
test edi, edi
jle 0x140077312
nop dword [rax + rax]
mov rcx, qword [r14 + r8*8]
mov eax, dword [r9]
mov dword [rcx + rdx*4], eax
inc rdx
cmp rdx, r10
jl 0x140077300
mov rdx, qword [rsp + 0x68]
inc r11d
cmp r11d, dword [r13 + 0x20]
jb 0x1400772d0
test esi, esi
je 0x140077345
movsxd rcx, esi
mov eax, 4
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.1400b609c
mov r15, rax
xor eax, eax
movaps xmmword [rsp + 0x90], xmm6
cmp byte [rsp + 0xf8], 1
mov ecx, 0x20
movaps xmmword [rsp + 0x80], xmm7
cmova eax, ecx
mov dword [rsp + 0x108], 0
mov dword [rsp + 0x58], eax
lea edx, [rcx - 0x1e]
mov rcx, rbp
call fcn.140076650
movsxd rsi, dword [rsp + 0x38]
mov ebx, eax
mov qword [rsp + 0x50], rsi
cmp eax, 4
je 0x140077b9f
mov r12d, dword [rsp + 0x30]
mov edi, dword [rsp + 0x100]
movd xmm7, r12d
cmp ebx, 9
ja case.0x1400773c4.4
lea rdx, [0x140000000]
movsxd rax, ebx
mov ecx, dword [rdx + rax*4 + 0x77ccc]
add rcx, rdx
jmp rcx
xor r13d, r13d
cmp ebx, 8
je 0x1400773ea
lea edx, [r13 + 3]
mov rcx, rbp
call fcn.140076650
cmp byte [rsp + 0xf8], 0
mov r13d, eax
jne 0x1400773ea
dec r13d
mov edi, dword [rsp + 0x38]
test edi, edi
jne 0x140077406
mov r11d, dword [rsp + 0x108]
mov rdx, qword [r14 + r11*8]
mov r12d, dword [rdx]
jmp 0x140077526
cmp byte [rsp + 0xf8], 2
jae 0x140077415
xor r10d, r10d
jmp 0x14007741f
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov r10d, eax
mov r11d, dword [rsp + 0x108]
xor edx, edx
test edi, edi
jle 0x1400774ab
cmp edi, 8
jb 0x1400774ab
mov r8, qword [r14 + r11*8]
mov ecx, edi
xorps xmm2, xmm2
xorps xmm1, xmm1
and ecx, 0x80000007
jge 0x14007744d
dec ecx
or ecx, 0xfffffff8
inc ecx
mov eax, edi
sub eax, ecx
movsxd rcx, eax
nop dword [rax]
nop dword [rax + rax]
movdqu xmm0, xmmword [r8 + rdx*4]
paddd xmm0, xmm2
movdqa xmm2, xmm0
movdqu xmm0, xmmword [r8 + rdx*4 + 0x10]
add rdx, 8
paddd xmm0, xmm1
movdqa xmm1, xmm0
cmp rdx, rcx
jl 0x140077460
paddd xmm1, xmm2
movdqa xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add r10d, eax
xor ecx, ecx
xor r8d, r8d
cmp rdx, rsi
jge 0x1400774fb
mov rax, rsi
sub rax, rdx
cmp rax, 2
mov rax, qword [r14 + r11*8]
jl 0x1400774f0
lea r9, [rsi - 1]
nop dword [rax]
add ecx, dword [rax + rdx*4]
add r8d, dword [rax + rdx*4 + 4]
add rdx, 2
cmp rdx, r9
jl 0x1400774d0
cmp rdx, rsi
jge 0x1400774f4
nop word [rax + rax]
add r10d, dword [rax + rdx*4]
lea eax, [r8 + rcx]
add r10d, eax
mov eax, r10d
cdq
idiv edi
cmp byte [rsp + 0xf8], 2
mov r12d, eax
mov dword [rsp + 0x34], eax
jb 0x14007752b
mov ecx, dword [rsp + 0x30]
mov dword [rsp + 0x34], eax
test ecx, ecx
je 0x14007752b
dec ecx
sar r12d, cl
sar r12d, 1
mov dword [rsp + 0x34], r12d
mov rax, qword [rsp + 0x70]
movsxd r9, dword [rsp + 0x100]
movd xmm6, r12d
mov r14, r9
pshufd xmm6, xmm6, 0
mov rdi, qword [rax + r11*8]
mov qword [rsp + 0x48], r11
cmp ebx, 8
ja case.0x14007756c.4
lea r8, [0x140000000]
movsxd rax, ebx
mov ecx, dword [r8 + rax*4 + 0x77cf4]
add rcx, r8
jmp rcx
test r9d, r9d
jle case.0x14007756c.4
mov r8, r14
xor edx, edx
shl r8, 2
mov rcx, rdi
call fcn.1400ba240
mov r9d, dword [rsp + 0x100]
jmp 0x1400778f6
xor ebx, ebx
test r9d, r9d
jle case.0x14007756c.4
lea edx, [r13 + 1]
mov rcx, rbp
call fcn.140076650
mov ecx, eax
shr ecx, 1
test al, 1
je 0x1400775b6
not ecx
lea eax, [rcx + r12]
mov dword [rdi + rbx*4], eax
inc rbx
cmp rbx, r14
jl 0x1400775a0
mov r9d, dword [rsp + 0x100]
jmp 0x1400778f1
xor ebx, ebx
test r9d, r9d
jle case.0x14007756c.4
nop dword [rax]
lea edx, [r13 + 1]
mov rcx, rbp
call fcn.140076650
mov ecx, eax
shr ecx, 1
test al, 1
je 0x1400775f6
not ecx
add ecx, dword [rdi + rbx*4 - 4]
mov dword [rdi + rbx*4], ecx
inc rbx
cmp rbx, r14
jl 0x1400775e0
mov r9d, dword [rsp + 0x100]
jmp 0x1400778f1
test r9d, r9d
jle case.0x14007756c.4
mov r12, qword [rsp + 0x40]
lea rbx, [rdi - 8]
mov rsi, r14
nop word [rax + rax]
lea edx, [r13 + 1]
mov rcx, r12
call fcn.140076650
mov edx, eax
shr edx, 1
test al, 1
je 0x140077646
not edx
mov eax, dword [rbx + 4]
add eax, eax
sub eax, dword [rbx]
add eax, edx
mov dword [rbx + 8], eax
add rbx, 4
sub rsi, 1
jne 0x140077630
mov r9d, dword [rsp + 0x100]
mov rbp, r12
jmp 0x1400778f1
test r9d, r9d
jle case.0x14007756c.4
mov r12, qword [rsp + 0x40]
lea rbx, [rdi - 8]
mov rsi, r14
lea edx, [r13 + 1]
mov rcx, r12
call fcn.140076650
mov r8d, eax
shr r8d, 1
test al, 1
je 0x14007769a
not r8d
mov eax, dword [rbx + 4]
sub eax, dword [rbx]
lea ecx, [rax + rax*2]
add ecx, dword [rbx - 4]
add ecx, r8d
mov dword [rbx + 8], ecx
add rbx, 4
sub rsi, 1
jne 0x140077681
mov r9d, dword [rsp + 0x100]
mov rbp, r12
jmp 0x1400778f1
mov edx, 2
mov rcx, rbp
call fcn.140076650
xor ebx, ebx
movsxd rsi, eax
mov rbp, rsi
test eax, eax
jle 0x14007770b
mov r12, qword [rsp + 0x40]
mov edx, 6
mov rcx, r12
call fcn.140076650
mov ecx, eax
shr ecx, 1
test al, 1
je 0x1400776fa
not ecx
mov dword [r15 + rbx*4], ecx
inc rbx
cmp rbx, rbp
jl 0x1400776e3
mov r12d, dword [rsp + 0x34]
xor r8d, r8d
test esi, esi
jle 0x140077789
cmp esi, 0x10
jb 0x140077789
mov eax, esi
and eax, 0x8000000f
jge 0x140077727
dec eax
or eax, 0xfffffff0
inc eax
sub esi, eax
xor edx, edx
mov eax, 8
movsxd r9, esi
sub rax, rbp
lea rcx, [rdi + rax*4]
nop word [rax + rax]
movdqu xmm0, xmmword [rcx - 0x20]
add r8d, 0x10
lea rcx, [rcx + 0x40]
add rdx, 0x10
psubd xmm0, xmm6
movdqu xmmword [rcx - 0x60], xmm0
movdqu xmm0, xmmword [rcx - 0x50]
psubd xmm0, xmm6
movdqu xmmword [rcx - 0x50], xmm0
movdqu xmm1, xmmword [rcx - 0x40]
psubd xmm1, xmm6
movdqu xmmword [rcx - 0x40], xmm1
movdqu xmm0, xmmword [rcx - 0x30]
psubd xmm0, xmm6
movdqu xmmword [rcx - 0x30], xmm0
cmp rdx, r9
jl 0x140077740
movsxd rdx, r8d
cmp rdx, rbp
jge 0x1400777ae
mov rax, rdx
sub rax, rbp
lea rcx, [rdi + rax*4]
mov rax, rbp
sub rax, rdx
sub dword [rcx], r12d
lea rcx, [rcx + 4]
sub rax, 1
jne 0x1400777a1
xor esi, esi
test r14, r14
jle 0x140077851
mov r12, qword [rsp + 0x40]
nop
mov edx, dword [rsp + 0x58]
xor r8d, r8d
xor r9d, r9d
xor ecx, ecx
mov ebx, edx
cmp rbp, 2
jl 0x140077806
lea rdx, [rsi - 2]
lea rdx, [rdi + rdx*4]
lea r10, [rbp - 1]
mov eax, dword [r15 + rcx*4]
imul eax, dword [rdx + 4]
lea rdx, [rdx - 8]
add r8d, eax
mov eax, dword [r15 + rcx*4 + 4]
imul eax, dword [rdx + 8]
add rcx, 2
add r9d, eax
cmp rcx, r10
jl 0x1400777e0
mov edx, ebx
cmp rcx, rbp
jge 0x14007781c
mov rax, rsi
sub rax, rcx
mov ebx, dword [rdi + rax*4 - 4]
imul ebx, dword [r15 + rcx*4]
add ebx, edx
lea eax, [r9 + r8]
mov rcx, r12
lea edx, [r13 + 1]
add ebx, eax
call fcn.140076650
mov ecx, eax
shr ecx, 1
test al, 1
je 0x140077838
not ecx
sar ebx, 5
add ebx, ecx
mov dword [rdi + rsi*4], ebx
inc rsi
cmp rsi, r14
jl 0x1400777c0
mov r12d, dword [rsp + 0x34]
mov r9d, dword [rsp + 0x100]
test r12d, r12d
je 0x1400778ec
xor ecx, ecx
test r9d, r9d
jle 0x1400778d9
cmp r9d, 0x10
jb 0x1400778d9
mov edx, r9d
and edx, 0x8000000f
jge 0x140077881
dec edx
or edx, 0xfffffff0
inc edx
mov eax, r9d
sub eax, edx
movsxd rdx, eax
lea rax, [rdi + 0x20]
nop dword [rax]
movdqu xmm0, xmmword [rax - 0x20]
add rcx, 0x10
lea rax, [rax + 0x40]
paddd xmm0, xmm6
movdqu xmmword [rax - 0x60], xmm0
movdqu xmm0, xmmword [rax - 0x50]
paddd xmm0, xmm6
movdqu xmmword [rax - 0x50], xmm0
movdqu xmm1, xmmword [rax - 0x40]
paddd xmm1, xmm6
movdqu xmmword [rax - 0x40], xmm1
movdqa xmm1, xmm6
movdqu xmm0, xmmword [rax - 0x30]
paddd xmm1, xmm0
movdqu xmmword [rax - 0x30], xmm1
cmp rcx, rdx
jl 0x140077890
cmp rcx, r14
jge 0x1400778ec
nop
add dword [rdi + rcx*4], r12d
inc rcx
cmp rcx, r14
jl 0x1400778e0
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
mov r11, qword [rsp + 0x48]
cmp dword [rsp + 0x38], 0
jle 0x140077a3e
cmp byte [rsp + 0xf8], 2
jae 0x140077915
xor r10d, r10d
jmp 0x140077920
mov eax, r9d
cdq
sub eax, edx
sar eax, 1
mov r10d, eax
xor ecx, ecx
test r9d, r9d
jle 0x140077999
cmp r9d, 8
jb 0x140077999
mov edx, r9d
xorps xmm2, xmm2
xorps xmm1, xmm1
and edx, 0x80000007
jge 0x140077945
dec edx
or edx, 0xfffffff8
inc edx
mov eax, r9d
sub eax, edx
movsxd rdx, eax
nop dword [rax]
movdqu xmm0, xmmword [rdi + rcx*4]
paddd xmm0, xmm2
movdqa xmm2, xmm0
movdqu xmm0, xmmword [rdi + rcx*4 + 0x10]
add rcx, 8
paddd xmm0, xmm1
movdqa xmm1, xmm0
cmp rcx, rdx
jl 0x140077950
paddd xmm1, xmm2
movdqa xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add r10d, eax
xor edx, edx
xor r8d, r8d
cmp rcx, r14
jge 0x1400779e9
mov rax, r14
sub rax, rcx
cmp rax, 2
jl 0x1400779d6
lea r9, [r14 - 1]
nop dword [rax]
nop word [rax + rax]
add edx, dword [rdi + rcx*4]
add r8d, dword [rdi + rcx*4 + 4]
add rcx, 2
cmp rcx, r9
jl 0x1400779c0
cmp rcx, r14
jge 0x1400779da
add r10d, dword [rdi + rcx*4]
mov r9d, dword [rsp + 0x100]
lea eax, [r8 + rdx]
add r10d, eax
mov r8, qword [rsp + 0x60]
mov eax, 1
mov edx, eax
cmp rax, rsi
jge 0x140077a13
nop word [rax + rax]
mov rcx, qword [r8 + r11*8]
mov eax, dword [rcx + rdx*4]
mov dword [rcx + rdx*4 - 4], eax
inc rdx
cmp rdx, rsi
jl 0x140077a00
mov r12d, dword [rsp + 0x30]
mov eax, r10d
cdq
idiv r9d
cmp byte [rsp + 0xf8], 2
mov rdx, qword [r8 + r11*8]
jae 0x140077a33
mov dword [rdx + rsi*4 - 4], eax
jmp 0x140077a43
mov ecx, r12d
shl eax, cl
mov dword [rdx + rsi*4 - 4], eax
jmp 0x140077a43
mov r12d, dword [rsp + 0x30]
mov rdx, qword [rsp + 0x68]
mov rax, rdx
neg rax
jns 0x140077a70
lea rcx, [rdi + rax*4]
nop dword [rax]
nop dword [rax + rax]
mov eax, dword [rcx + r14*4]
mov dword [rcx], eax
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x140077a60
test r12d, r12d
je 0x140077b0e
xor edx, edx
test r9d, r9d
jle 0x140077af5
cmp r9d, 0x10
jb 0x140077af5
mov ecx, r9d
and ecx, 0x8000000f
jge 0x140077a98
dec ecx
or ecx, 0xfffffff0
inc ecx
mov eax, r9d
sub eax, ecx
movsxd rcx, eax
lea rax, [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
movdqu xmm0, xmmword [rax - 0x20]
add rdx, 0x10
lea rax, [rax + 0x40]
pslld xmm0, xmm7
movdqu xmmword [rax - 0x60], xmm0
movdqu xmm0, xmmword [rax - 0x50]
pslld xmm0, xmm7
movdqu xmmword [rax - 0x50], xmm0
movdqu xmm1, xmmword [rax - 0x40]
pslld xmm1, xmm7
movdqu xmmword [rax - 0x40], xmm1
movdqu xmm0, xmmword [rax - 0x30]
pslld xmm0, xmm7
movdqu xmmword [rax - 0x30], xmm0
cmp rdx, rcx
jl 0x140077ab0
cmp rdx, r14
jge 0x140077b0e
nop word [rax + rax]
mov ecx, r12d
shl dword [rdi + rdx*4], cl
inc rdx
cmp rdx, r14
jl 0x140077b00
mov r13, qword [rsp + 0xf0]
mov r8, rdi
mov eax, dword [rsp + 0x5c]
mov rcx, r13
mov dword [rsp + 0x20], eax
mov rdx, qword [r13 + 0x2b0]
mov rdx, qword [rdx + r11*8]
call fcn.140076700
mov eax, dword [rsp + 0x108]
mov edi, dword [rsp + 0x100]
inc eax
mov dword [rsp + 0x108], eax
cmp eax, dword [r13 + 0x20]
jne 0x140077b7d
mov rcx, qword [r13 + 0x10]
mov r8d, edi
mov rdx, qword [r13 + 0x2b0]
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov ecx, eax
shr ecx, 0x1f
test cl, cl
jne 0x140077bc6
add qword [r13 + 0x18], r14
mov dword [rsp + 0x108], 0
mov r14, qword [rsp + 0x60]
mov edx, 2
mov rcx, rbp
call fcn.140076650
mov ebx, eax
cmp eax, 4
jne 0x1400773a2
mov r12, qword [rsp + 0x70]
mov rcx, r12
call fcn.1400b60a4
mov rcx, r14
call fcn.1400b60a4
test r15, r15
je 0x140077bbc
mov rcx, r15
call fcn.1400b60a4
mov rcx, qword [r13 + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x18]
movaps xmm7, xmmword [rsp + 0x80]
movaps xmm6, xmmword [rsp + 0x90]
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
cmp byte [rsp + 0xf8], 0
jne 0x140077c26
movd xmm0, edi
cvtdq2pd xmm0, xmm0
call fcn.1400f6310
mulsd xmm0, qword [0x140148198]
mov rcx, rbp
cvttsd2si rax, xmm0
mov edx, eax
call fcn.140076650
mov edi, eax
mov dword [rsp + 0x100], eax
jmp 0x140077b82
mov edx, 2
mov rcx, rbp
call fcn.140076650
mov edx, eax
mov rcx, rbp
call fcn.140076650
mov edi, eax
mov dword [rsp + 0x100], eax
jmp 0x140077b82
mov edx, 2
mov rcx, rbp
call fcn.140076650
mov r12d, eax
mov dword [rsp + 0x30], eax
jmp 0x140077b82
mov edx, 5
mov rcx, rbp
call fcn.140076650
mov ebx, eax
test eax, eax
je 0x140077b82
nop dword [rax + rax]
mov edx, 8
mov rcx, rbp
call fcn.140076650
sub ebx, 1
jne 0x140077c80
jmp 0x140077b82
mov eax, 0x80040200
jmp 0x140077bc6