Function at 0x2e3d40100
Capabilities:
Read file on windows

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rax, qword [rcx + 0x28]
mov rbx, rcx
test rax, rax
je 0x2e3d408e0
cmp rax, qword [rcx + 0x38]
jb 0x2e3d401c8
mov dword [rbx + 0x80], 1
xor eax, eax
mov byte [rbx + 0x6cb], al
mov rcx, rbx
call fcn.2e3d126f0
mov rcx, rbx
mov ebp, eax
call fcn.2e3d126f0
mov rcx, rbx
mov r12d, eax
call fcn.2e3d126f0
mov rcx, rbx
call fcn.2e3d126f0
mov rcx, rbx
mov dword [rbx + 0x5c4], eax
call fcn.2e3d126f0
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x2e3d40890
cmp rax, qword [rbx + 0x38]
jb 0x2e3d401e0
mov dword [rbx + 0x80], 1
mov rsi, rax
xor edx, edx
xor eax, eax
mov dword [rbx + 0x5c8], eax
lea r10, [rbx + 0x5cc]
lea rax, [rsi + rdx]
cmp rax, qword [rbx + 0x38]
jbe 0x2e3d401f0
movabs rax, 0xa00000001
mov qword [rbx + 0x80], rax
xor eax, eax
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
lea rdx, [rax + 1]
mov qword [rcx + 0x28], rdx
movzx eax, byte [rax]
jmp 0x2e3d40130
lea rsi, [rax + 1]
mov qword [rbx + 0x28], rsi
movzx eax, byte [rax]
mov rdx, rax
jmp 0x2e3d4018d
mov ecx, edx
cmp edx, 8
jae 0x2e3d40860
and edx, 4
jne 0x2e3d4091b
test ecx, ecx
je 0x2e3d40217
movzx edx, byte [rsi]
mov byte [r10], dl
test cl, 2
jne 0x2e3d4092e
mov qword [rbx + 0x28], rax
mov dword [rbx + 0x6e8], 0xfffffffe
and r12d, ebp
cmp r12d, 0xffffffff
je 0x2e3d4025e
mov eax, dword [rbx + 0x5c8]
sub eax, 1
js 0x2e3d4025e
cdqe
jmp 0x2e3d40248
sub rax, 1
test eax, eax
js 0x2e3d4025e
cmp byte [rbx + rax + 0x5cc], 0xff
je 0x2e3d40240
mov dword [rbx + 0x6e8], eax
mov dword [rbx + 0x6ec], ebp
cmp byte [rbx + 0x6cd], 0
je 0x2e3d40845
mov r8d, dword [rbx + 0x5c8]
test r8d, r8d
jle 0x2e3d4090b
lea eax, [r8 - 1]
cmp eax, 0xe
jbe 0x2e3d40912
movdqu xmm4, xmmword [rbx + 0x5cc]
pxor xmm3, xmm3
pxor xmm2, xmm2
mov eax, r8d
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 0x2e3d406a0
movdqu xmm1, xmmword [rbx + 0x5dc]
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 0x2e3d406a0
movdqu xmm1, xmmword [rbx + 0x5ec]
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 0x2e3d406a0
movdqu xmm1, xmmword [rbx + 0x5fc]
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 0x2e3d406a0
movdqu xmm1, xmmword [rbx + 0x60c]
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 0x2e3d406a0
movdqu xmm1, xmmword [rbx + 0x61c]
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 0x2e3d406a0
movdqu xmm1, xmmword [rbx + 0x62c]
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, 7
je 0x2e3d406a0
movdqu xmm3, xmmword [rbx + 0x63c]
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, 8
je 0x2e3d406a0
movdqu xmm3, xmmword [rbx + 0x64c]
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 0x2e3d406a0
movdqu xmm3, xmmword [rbx + 0x65c]
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 0x2e3d406a0
movdqu xmm3, xmmword [rbx + 0x66c]
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 0x2e3d406a0
movdqu xmm3, xmmword [rbx + 0x67c]
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 0x2e3d406a0
movdqu xmm3, xmmword [rbx + 0x68c]
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 0x2e3d406a0
movdqu xmm3, xmmword [rbx + 0x69c]
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, 0xe
je 0x2e3d406a0
movdqu xmm3, xmmword [rbx + 0x6ac]
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, r8d
psrldq xmm1, 8
and edx, 0xfffffff0
paddd xmm0, xmm1
movdqa xmm1, xmm0
psrldq xmm1, 4
paddd xmm0, xmm1
movd eax, xmm0
test r8b, 0xf
je 0x2e3d40828
movsxd rcx, edx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 1]
cmp ecx, r8d
jge 0x2e3d40828
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 2]
cmp r8d, ecx
jle 0x2e3d40828
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 3]
cmp r8d, ecx
jle 0x2e3d40828
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 4]
cmp r8d, ecx
jle 0x2e3d40828
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 5]
cmp r8d, ecx
jle 0x2e3d40828
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 6]
cmp r8d, ecx
jle 0x2e3d40828
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 7]
cmp r8d, ecx
jle 0x2e3d40828
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 8]
cmp r8d, ecx
jle 0x2e3d40828
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 9]
cmp r8d, ecx
jle 0x2e3d40828
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 0xa]
cmp r8d, ecx
jle 0x2e3d40828
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 0xb]
cmp r8d, ecx
jle 0x2e3d40828
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 0xc]
cmp r8d, ecx
jle 0x2e3d40828
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 0xd]
cmp r8d, ecx
jle 0x2e3d40828
movsxd rcx, ecx
add edx, 0xe
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
cmp r8d, edx
jle 0x2e3d40828
movsxd rdx, edx
movzx edx, byte [rbx + rdx + 0x5cc]
add eax, edx
nop dword [rax]
movd xmm0, dword [rbx + 0x48]
lea eax, [rax + r8 + 0x1b]
add eax, dword [rbx + 0x48]
mov dword [rbx + 0x54], ebp
movd xmm3, eax
punpckldq xmm0, xmm3
movq qword [rbx + 0x4c], xmm0
mov dword [rbx + 0x6d0], 0
mov eax, 1
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rcx, qword [rsi]
lea rdi, [r10 + 8]
and rdi, 0xfffffffffffffff8
mov qword [r10], rcx
mov rcx, qword [rsi + rdx - 8]
mov qword [r10 + rdx - 8], rcx
mov rcx, r10
sub rcx, rdi
sub rsi, rcx
add ecx, edx
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
jmp 0x2e3d40217
mov rcx, qword [rbx + 0x18]
call sub.msvcrt.dll_fgetc
cmp eax, 0xffffffff
je 0x2e3d408f7
mov rsi, qword [rbx + 0x28]
movzx ecx, al
movzx edx, al
mov dword [rbx + 0x5c8], ecx
lea r10, [rbx + 0x5cc]
test rsi, rsi
jne 0x2e3d4019a
mov r9, qword [rbx + 0x18]
mov r8d, 1
mov rcx, r10
call sub.msvcrt.dll_fread
cmp rax, 1
jne 0x2e3d401a4
jmp 0x2e3d4021b
mov rcx, qword [rcx + 0x18]
call sub.msvcrt.dll_fgetc
cmp eax, 0xffffffff
jne 0x2e3d40130
jmp 0x2e3d40124
mov dword [rbx + 0x80], 1
mov rsi, qword [rbx + 0x28]
xor edx, edx
xor ecx, ecx
jmp 0x2e3d408a8
xor eax, eax
jmp 0x2e3d40828
xor eax, eax
xor edx, edx
jmp 0x2e3d406ce
mov edx, dword [rsi]
mov dword [r10], edx
mov edx, dword [rsi + rcx - 4]
mov dword [r10 + rcx - 4], edx
jmp 0x2e3d40217
movzx edx, word [rsi + rcx - 2]
mov word [r10 + rcx - 2], dx
jmp 0x2e3d40217