Function at 0x22dbafac0
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 0x22dbafaea
mov rax, qword [rcx + 0x28]
test rax, rax
je 0x22dbb01b0
sub eax, dword [rcx + 0x30]
mov dword [rbx], eax
mov rax, qword [r12 + 0x28]
test rax, rax
je 0x22dbb01d0
lea rdx, [rax + 0x1b]
cmp rdx, qword [r12 + 0x38]
jbe 0x22dbb0180
mov dword [r12 + 0x80], 1
xor eax, eax
cmp byte [rsp + 0x20], 0x4f
jne 0x22dbafb25
cmp byte [rsp + 0x21], 0x67
je 0x22dbafb38
add rsp, 0x148
pop rbx
pop rsi
pop rdi
pop r12
ret
cmp byte [rsp + 0x22], 0x67
jne 0x22dbafb25
cmp byte [rsp + 0x23], 0x53
jne 0x22dbafb25
movzx edx, byte [rsp + 0x3a]
mov rax, qword [r12 + 0x28]
mov r8, rdx
test rax, rax
je 0x22dbb0253
lea r9, [rax + rdx]
cmp r9, qword [r12 + 0x38]
jbe 0x22dbb0200
mov dword [r12 + 0x80], 1
movzx ecx, r8b
test ecx, ecx
je 0x22dbb0285
lea eax, [rcx - 1]
cmp eax, 0xe
jbe 0x22dbb028c
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 0x22dbaffa8
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 0x22dbaffa8
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 0x22dbaffa8
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 0x22dbaffa8
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 0x22dbaffa8
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 0x22dbaffa8
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 0x22dbaffa8
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 0x22dbaffa8
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 0x22dbaffa8
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 0x22dbaffa8
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 0x22dbaffa8
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 0x22dbaffa8
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 0x22dbaffa8
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 0x22dbaffa8
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 0x22dbb0128
movsxd r8, edx
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 1]
cmp ecx, r8d
jle 0x22dbb0128
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 2]
cmp ecx, r8d
jle 0x22dbb0128
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 3]
cmp ecx, r8d
jle 0x22dbb0128
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 4]
cmp ecx, r8d
jle 0x22dbb0128
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 5]
cmp ecx, r8d
jle 0x22dbb0128
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 6]
cmp ecx, r8d
jle 0x22dbb0128
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 7]
cmp ecx, r8d
jle 0x22dbb0128
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 8]
cmp ecx, r8d
jle 0x22dbb0128
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 9]
cmp ecx, r8d
jle 0x22dbb0128
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 0xa]
cmp ecx, r8d
jle 0x22dbb0128
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 0xb]
cmp ecx, r8d
jle 0x22dbb0128
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 0xc]
cmp ecx, r8d
jle 0x22dbb0128
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 0xd]
cmp ecx, r8d
jle 0x22dbb0128
movsxd r8, r8d
add edx, 0xe
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
cmp ecx, edx
jle 0x22dbb0128
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.22dce7b90
mov eax, 1
jmp 0x22dbafb25
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 0x22dbafb15
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 0x22dbafafa
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 0x22dbafb09
jmp 0x22dbafb15
lea rdi, [rsp + 0x40]
cmp edx, 8
jb 0x22dbb021a
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 0x22dbb022a
mov ecx, dword [rax]
mov dword [rdi], ecx
mov ecx, 4
test dl, 2
je 0x22dbb023d
movzx r10d, word [rax + rcx]
mov word [rdi + rcx], r10w
add rcx, 2
and edx, 1
je 0x22dbb0249
movzx eax, byte [rax + rcx]
mov byte [rdi + rcx], al
mov qword [r12 + 0x28], r9
jmp 0x22dbafb77
mov r9, qword [r12 + 0x18]
lea rcx, [rsp + 0x40]
mov r8d, 1
call sub.msvcrt.dll_fread
cmp rax, 1
je 0x22dbb027a
mov dword [r12 + 0x80], 1
movzx r8d, byte [rsp + 0x3a]
jmp 0x22dbafb77
xor eax, eax
jmp 0x22dbb0128
xor eax, eax
xor edx, edx
jmp 0x22dbaffd7