Function at 0x2e3d109a0
Capabilities:
Read file on windows

Disassembly:
push r12
push rdi
push rsi
push rbx
sub rsp, 0x148
xor eax, eax
cmp byte [rcx + 0x44], 0
mov r12, rcx
mov rbx, rdx
jne 0x2e3d109ca
mov rax, qword [rcx + 0x28]
test rax, rax
je 0x2e3d11090
sub eax, dword [rcx + 0x30]
mov dword [rbx], eax
mov rax, qword [r12 + 0x28]
test rax, rax
je 0x2e3d110b0
lea rdx, [rax + 0x1b]
cmp rdx, qword [r12 + 0x38]
jbe 0x2e3d11060
mov dword [r12 + 0x80], 1
xor eax, eax
cmp byte [rsp + 0x20], 0x4f
jne 0x2e3d10a05
cmp byte [rsp + 0x21], 0x67
je 0x2e3d10a18
add rsp, 0x148
pop rbx
pop rsi
pop rdi
pop r12
ret
cmp byte [rsp + 0x22], 0x67
jne 0x2e3d10a05
cmp byte [rsp + 0x23], 0x53
jne 0x2e3d10a05
movzx edx, byte [rsp + 0x3a]
mov rax, qword [r12 + 0x28]
mov r8, rdx
test rax, rax
je 0x2e3d11133
lea r9, [rax + rdx]
cmp r9, qword [r12 + 0x38]
jbe 0x2e3d110e0
mov dword [r12 + 0x80], 1
movzx ecx, r8b
test ecx, ecx
je 0x2e3d11165
lea eax, [rcx - 1]
cmp eax, 0xe
jbe 0x2e3d1116c
movdqa xmm4, xmmword [rsp + 0x40]
pxor xmm3, xmm3
pxor xmm2, xmm2
mov eax, ecx
shr eax, 4
movdqa xmm1, xmm4
punpckhbw xmm4, xmm3
punpcklbw xmm1, xmm3
movdqa xmm5, xmm1
movdqa xmm0, xmm1
movdqa xmm1, xmm4
punpcklwd xmm5, xmm2
punpckhwd xmm0, xmm2
punpcklwd xmm1, xmm2
paddd xmm0, xmm5
punpckhwd xmm4, xmm2
paddd xmm0, xmm1
paddd xmm0, xmm4
cmp eax, 1
je 0x2e3d10e88
movdqa xmm1, xmmword [rsp + 0x50]
movdqa xmm5, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm5, xmm3
movdqa xmm4, xmm5
punpckhwd xmm5, xmm2
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
movdqa xmm4, xmm1
punpckhwd xmm1, xmm2
paddd xmm0, xmm5
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
paddd xmm0, xmm1
cmp eax, 2
je 0x2e3d10e88
movdqa xmm1, xmmword [rsp + 0x60]
movdqa xmm5, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm5, xmm3
movdqa xmm4, xmm5
punpckhwd xmm5, xmm2
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
movdqa xmm4, xmm1
punpckhwd xmm1, xmm2
paddd xmm0, xmm5
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
paddd xmm0, xmm1
cmp eax, 3
je 0x2e3d10e88
movdqa xmm1, xmmword [rsp + 0x70]
movdqa xmm5, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm5, xmm3
movdqa xmm4, xmm5
punpckhwd xmm5, xmm2
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
movdqa xmm4, xmm1
punpckhwd xmm1, xmm2
paddd xmm0, xmm5
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
paddd xmm0, xmm1
cmp eax, 4
je 0x2e3d10e88
movdqa xmm1, xmmword [rsp + 0x80]
movdqa xmm5, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm5, xmm3
movdqa xmm4, xmm5
punpckhwd xmm5, xmm2
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
movdqa xmm4, xmm1
punpckhwd xmm1, xmm2
paddd xmm0, xmm5
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
paddd xmm0, xmm1
cmp eax, 5
je 0x2e3d10e88
movdqa xmm1, xmmword [rsp + 0x90]
movdqa xmm5, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm5, xmm3
movdqa xmm4, xmm5
punpckhwd xmm5, xmm2
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
movdqa xmm4, xmm1
punpckhwd xmm1, xmm2
paddd xmm0, xmm5
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
paddd xmm0, xmm1
cmp eax, 6
je 0x2e3d10e88
movdqa xmm1, xmmword [rsp + 0xa0]
movdqa xmm5, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm5, xmm3
movdqa xmm4, xmm5
punpckhwd xmm5, xmm2
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
movdqa xmm4, xmm1
punpckhwd xmm1, xmm2
paddd xmm0, xmm5
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
paddd xmm0, xmm1
cmp eax, 7
je 0x2e3d10e88
movdqa xmm1, xmmword [rsp + 0xb0]
movdqa xmm4, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm4, xmm3
movdqa xmm3, xmm4
punpckhwd xmm4, xmm2
punpcklwd xmm3, xmm2
paddd xmm0, xmm3
movdqa xmm3, xmm1
punpckhwd xmm1, xmm2
paddd xmm0, xmm4
punpcklwd xmm3, xmm2
paddd xmm0, xmm3
paddd xmm0, xmm1
cmp eax, 8
je 0x2e3d10e88
movdqa xmm3, xmmword [rsp + 0xc0]
pxor xmm2, xmm2
pxor xmm1, xmm1
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 9
je 0x2e3d10e88
movdqa xmm3, xmmword [rsp + 0xd0]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 0xa
je 0x2e3d10e88
movdqa xmm3, xmmword [rsp + 0xe0]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 0xb
je 0x2e3d10e88
movdqa xmm3, xmmword [rsp + 0xf0]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 0xc
je 0x2e3d10e88
movdqa xmm3, xmmword [rsp + 0x100]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 0xd
je 0x2e3d10e88
movdqa xmm3, xmmword [rsp + 0x110]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 0xf
jne 0x2e3d10e88
movdqa xmm3, xmmword [rsp + 0x120]
movdqa xmm4, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm4, xmm2
movdqa xmm2, xmm4
punpckhwd xmm4, xmm1
punpcklwd xmm2, xmm1
paddd xmm0, xmm2
movdqa xmm2, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm4
punpcklwd xmm2, xmm1
paddd xmm0, xmm2
paddd xmm0, xmm3
nop dword [rax]
movdqa xmm1, xmm0
mov edx, ecx
psrldq xmm1, 8
and edx, 0xfffffff0
paddd xmm0, xmm1
movdqa xmm1, xmm0
psrldq xmm1, 4
paddd xmm0, xmm1
movd eax, xmm0
test ecx, 0xffffff0f
je 0x2e3d11008
movsxd r8, edx
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 1]
cmp ecx, r8d
jle 0x2e3d11008
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 2]
cmp ecx, r8d
jle 0x2e3d11008
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 3]
cmp ecx, r8d
jle 0x2e3d11008
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 4]
cmp ecx, r8d
jle 0x2e3d11008
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 5]
cmp ecx, r8d
jle 0x2e3d11008
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 6]
cmp ecx, r8d
jle 0x2e3d11008
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 7]
cmp ecx, r8d
jle 0x2e3d11008
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 8]
cmp ecx, r8d
jle 0x2e3d11008
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 9]
cmp ecx, r8d
jle 0x2e3d11008
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 0xa]
cmp ecx, r8d
jle 0x2e3d11008
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 0xb]
cmp ecx, r8d
jle 0x2e3d11008
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 0xc]
cmp ecx, r8d
jle 0x2e3d11008
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 0xd]
cmp ecx, r8d
jle 0x2e3d11008
movsxd r8, r8d
add edx, 0xe
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
cmp ecx, edx
jle 0x2e3d11008
movsxd rdx, edx
movzx edx, byte [rsp + rdx + 0x40]
add eax, edx
nop dword [rax]
mov r8d, dword [rbx]
lea edx, [r8 + rcx + 0x1b]
mov rcx, r12
add eax, edx
movzx edx, byte [rsp + 0x26]
movd xmm0, eax
movzx eax, byte [rsp + 0x27]
shl eax, 8
add eax, edx
movzx edx, byte [rsp + 0x28]
shl edx, 0x10
add eax, edx
movzx edx, byte [rsp + 0x29]
shl edx, 0x18
add eax, edx
mov edx, r8d
movd xmm2, eax
punpckldq xmm0, xmm2
movq qword [rbx + 4], xmm0
call fcn.2e3e44fc0
mov eax, 1
jmp 0x2e3d10a05
movdqu xmm3, xmmword [rax]
movaps xmmword [rsp + 0x20], xmm3
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x30], rcx
movzx ecx, word [rax + 0x18]
mov word [rsp + 0x38], cx
movzx eax, byte [rax + 0x1a]
mov qword [r12 + 0x28], rdx
mov byte [rsp + 0x3a], al
jmp 0x2e3d109f5
mov rcx, qword [rcx + 0x18]
call sub.msvcrt.dll_ftell
sub eax, dword [r12 + 0x20]
mov dword [rbx], eax
mov rax, qword [r12 + 0x28]
test rax, rax
jne 0x2e3d109da
nop
mov r9, qword [r12 + 0x18]
lea rcx, [rsp + 0x20]
mov r8d, 1
mov edx, 0x1b
call sub.msvcrt.dll_fread
cmp rax, 1
jne 0x2e3d109e9
jmp 0x2e3d109f5
lea rdi, [rsp + 0x40]
cmp edx, 8
jb 0x2e3d110fa
mov rcx, rdx
mov rsi, rax
shr rcx, 3
rep movsq qword [rdi], qword [rsi]
mov rax, rsi
xor ecx, ecx
test dl, 4
je 0x2e3d1110a
mov ecx, dword [rax]
mov dword [rdi], ecx
mov ecx, 4
test dl, 2
je 0x2e3d1111d
movzx r10d, word [rax + rcx]
mov word [rdi + rcx], r10w
add rcx, 2
and edx, 1
je 0x2e3d11129
movzx eax, byte [rax + rcx]
mov byte [rdi + rcx], al
mov qword [r12 + 0x28], r9
jmp 0x2e3d10a57
mov r9, qword [r12 + 0x18]
lea rcx, [rsp + 0x40]
mov r8d, 1
call sub.msvcrt.dll_fread
cmp rax, 1
je 0x2e3d1115a
mov dword [r12 + 0x80], 1
movzx r8d, byte [rsp + 0x3a]
jmp 0x2e3d10a57
xor eax, eax
jmp 0x2e3d11008
xor eax, eax
xor edx, edx
jmp 0x2e3d10eb7