Function at 0x22dbdeec0
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 0x22dbdf6a0
cmp rax, qword [rcx + 0x38]
jb 0x22dbdef88
mov dword [rbx + 0x80], 1
xor eax, eax
mov byte [rbx + 0x6cb], al
mov rcx, rbx
call fcn.22dbb1810
mov rcx, rbx
mov ebp, eax
call fcn.22dbb1810
mov rcx, rbx
mov r12d, eax
call fcn.22dbb1810
mov rcx, rbx
call fcn.22dbb1810
mov rcx, rbx
mov dword [rbx + 0x5c4], eax
call fcn.22dbb1810
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x22dbdf650
cmp rax, qword [rbx + 0x38]
jb 0x22dbdefa0
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 0x22dbdefb0
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 0x22dbdeef0
lea rsi, [rax + 1]
mov qword [rbx + 0x28], rsi
movzx eax, byte [rax]
mov rdx, rax
jmp 0x22dbdef4d
mov ecx, edx
cmp edx, 8
jae 0x22dbdf620
and edx, 4
jne 0x22dbdf6db
test ecx, ecx
je 0x22dbdefd7
movzx edx, byte [rsi]
mov byte [r10], dl
test cl, 2
jne 0x22dbdf6ee
mov qword [rbx + 0x28], rax
mov dword [rbx + 0x6e8], 0xfffffffe
and r12d, ebp
cmp r12d, 0xffffffff
je 0x22dbdf01e
mov eax, dword [rbx + 0x5c8]
sub eax, 1
js 0x22dbdf01e
cdqe
jmp 0x22dbdf008
sub rax, 1
test eax, eax
js 0x22dbdf01e
cmp byte [rbx + rax + 0x5cc], 0xff
je 0x22dbdf000
mov dword [rbx + 0x6e8], eax
mov dword [rbx + 0x6ec], ebp
cmp byte [rbx + 0x6cd], 0
je 0x22dbdf605
mov r8d, dword [rbx + 0x5c8]
test r8d, r8d
jle 0x22dbdf6cb
lea eax, [r8 - 1]
cmp eax, 0xe
jbe 0x22dbdf6d2
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 0x22dbdf460
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 0x22dbdf460
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 0x22dbdf460
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 0x22dbdf460
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 0x22dbdf460
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 0x22dbdf460
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 0x22dbdf460
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 0x22dbdf460
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 0x22dbdf460
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 0x22dbdf460
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 0x22dbdf460
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 0x22dbdf460
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 0x22dbdf460
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 0x22dbdf460
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 0x22dbdf5e8
movsxd rcx, edx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 1]
cmp ecx, r8d
jge 0x22dbdf5e8
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 2]
cmp r8d, ecx
jle 0x22dbdf5e8
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 3]
cmp r8d, ecx
jle 0x22dbdf5e8
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 4]
cmp r8d, ecx
jle 0x22dbdf5e8
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 5]
cmp r8d, ecx
jle 0x22dbdf5e8
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 6]
cmp r8d, ecx
jle 0x22dbdf5e8
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 7]
cmp r8d, ecx
jle 0x22dbdf5e8
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 8]
cmp r8d, ecx
jle 0x22dbdf5e8
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 9]
cmp r8d, ecx
jle 0x22dbdf5e8
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 0xa]
cmp r8d, ecx
jle 0x22dbdf5e8
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 0xb]
cmp r8d, ecx
jle 0x22dbdf5e8
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 0xc]
cmp r8d, ecx
jle 0x22dbdf5e8
movsxd rcx, ecx
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
lea ecx, [rdx + 0xd]
cmp r8d, ecx
jle 0x22dbdf5e8
movsxd rcx, ecx
add edx, 0xe
movzx ecx, byte [rbx + rcx + 0x5cc]
add eax, ecx
cmp r8d, edx
jle 0x22dbdf5e8
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 0x22dbdefd7
mov rcx, qword [rbx + 0x18]
call sub.msvcrt.dll_fgetc
cmp eax, 0xffffffff
je 0x22dbdf6b7
mov rsi, qword [rbx + 0x28]
movzx ecx, al
movzx edx, al
mov dword [rbx + 0x5c8], ecx
lea r10, [rbx + 0x5cc]
test rsi, rsi
jne 0x22dbdef5a
mov r9, qword [rbx + 0x18]
mov r8d, 1
mov rcx, r10
call sub.msvcrt.dll_fread
cmp rax, 1
jne 0x22dbdef64
jmp 0x22dbdefdb
mov rcx, qword [rcx + 0x18]
call sub.msvcrt.dll_fgetc
cmp eax, 0xffffffff
jne 0x22dbdeef0
jmp 0x22dbdeee4
mov dword [rbx + 0x80], 1
mov rsi, qword [rbx + 0x28]
xor edx, edx
xor ecx, ecx
jmp 0x22dbdf668
xor eax, eax
jmp 0x22dbdf5e8
xor eax, eax
xor edx, edx
jmp 0x22dbdf48e
mov edx, dword [rsi]
mov dword [r10], edx
mov edx, dword [rsi + rcx - 4]
mov dword [r10 + rcx - 4], edx
jmp 0x22dbdefd7
movzx edx, word [rsi + rcx - 2]
mov word [r10 + rcx - 2], dx
jmp 0x22dbdefd7