Function at 0x43d400
Capabilities:
Read file on windows

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x148
xor eax, eax
cmp byte [rcx + 0x44], 0
mov rbx, rcx
mov rbp, rdx
jne 0x43d429
mov rax, qword [rcx + 0x28]
test rax, rax
je 0x43db48
sub eax, dword [rcx + 0x30]
mov dword [rbp], eax
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x43db68
lea rdx, [rax + 0x1b]
cmp rdx, qword [rbx + 0x38]
jbe 0x43db18
mov dword [rbx + 0x80], 1
xor eax, eax
cmp byte [rsp + 0x20], 0x4f
jne 0x43d461
cmp byte [rsp + 0x21], 0x67
je 0x43d470
add rsp, 0x148
pop rbx
pop rsi
pop rdi
pop rbp
ret
cmp byte [rsp + 0x22], 0x67
jne 0x43d461
cmp byte [rsp + 0x23], 0x53
jne 0x43d461
movzx edx, byte [rsp + 0x3a]
mov rax, qword [rbx + 0x28]
mov r8, rdx
test rax, rax
je 0x43dc48
lea r9, [rax + rdx]
cmp r9, qword [rbx + 0x38]
jbe 0x43dbe8
mov dword [rbx + 0x80], 1
movzx ecx, r8b
test ecx, ecx
je 0x43dc8b
lea eax, [rcx - 1]
cmp eax, 0xe
jbe 0x43dc92
movdqu xmm4, xmmword [rsp + 0x40]
pxor xmm3, xmm3
pxor xmm2, xmm2
mov eax, ecx
shr eax, 4
movdqu xmm1, xmm4
punpckhbw xmm4, xmm3
punpcklbw xmm1, xmm3
movdqu xmm5, xmm1
movdqu xmm0, xmm1
movdqu 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 0x43d918
movdqu xmm1, xmmword [rsp + 0x50]
movdqu xmm5, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm5, xmm3
movdqu xmm4, xmm5
punpckhwd xmm5, xmm2
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
movdqu xmm4, xmm1
punpckhwd xmm1, xmm2
paddd xmm0, xmm5
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
paddd xmm0, xmm1
cmp eax, 2
je 0x43d918
movdqu xmm1, xmmword [rsp + 0x60]
movdqu xmm5, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm5, xmm3
movdqu xmm4, xmm5
punpckhwd xmm5, xmm2
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
movdqu xmm4, xmm1
punpckhwd xmm1, xmm2
paddd xmm0, xmm5
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
paddd xmm0, xmm1
cmp eax, 3
je 0x43d918
movdqu xmm1, xmmword [rsp + 0x70]
movdqu xmm5, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm5, xmm3
movdqu xmm4, xmm5
punpckhwd xmm5, xmm2
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
movdqu xmm4, xmm1
punpckhwd xmm1, xmm2
paddd xmm0, xmm5
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
paddd xmm0, xmm1
cmp eax, 4
je 0x43d918
movdqu xmm1, xmmword [rsp + 0x80]
movdqu xmm5, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm5, xmm3
movdqu xmm4, xmm5
punpckhwd xmm5, xmm2
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
movdqu xmm4, xmm1
punpckhwd xmm1, xmm2
paddd xmm0, xmm5
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
paddd xmm0, xmm1
cmp eax, 5
je 0x43d918
movdqu xmm1, xmmword [rsp + 0x90]
movdqu xmm5, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm5, xmm3
movdqu xmm4, xmm5
punpckhwd xmm5, xmm2
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
movdqu xmm4, xmm1
punpckhwd xmm1, xmm2
paddd xmm0, xmm5
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
paddd xmm0, xmm1
cmp eax, 6
je 0x43d918
movdqu xmm1, xmmword [rsp + 0xa0]
movdqu xmm5, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm5, xmm3
movdqu xmm4, xmm5
punpckhwd xmm5, xmm2
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
movdqu xmm4, xmm1
punpckhwd xmm1, xmm2
paddd xmm0, xmm5
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
paddd xmm0, xmm1
cmp eax, 7
je 0x43d918
movdqu xmm1, xmmword [rsp + 0xb0]
movdqu xmm4, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm4, xmm3
movdqu xmm3, xmm4
punpckhwd xmm4, xmm2
punpcklwd xmm3, xmm2
paddd xmm0, xmm3
movdqu xmm3, xmm1
punpckhwd xmm1, xmm2
paddd xmm0, xmm4
punpcklwd xmm3, xmm2
paddd xmm0, xmm3
paddd xmm0, xmm1
cmp eax, 8
je 0x43d918
movdqu xmm3, xmmword [rsp + 0xc0]
pxor xmm2, xmm2
pxor xmm1, xmm1
movdqu xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqu xmm4, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqu xmm4, xmm5
punpckhwd xmm4, xmm1
paddd xmm0, xmm4
movdqu xmm4, xmm3
punpcklwd xmm4, xmm1
paddd xmm4, xmm0
movdqu xmm0, xmm3
punpckhwd xmm0, xmm1
paddd xmm0, xmm4
cmp eax, 9
je 0x43d918
movdqu xmm3, xmmword [rsp + 0xd0]
movdqu xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqu xmm4, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqu xmm4, xmm5
punpckhwd xmm4, xmm1
paddd xmm0, xmm4
movdqu xmm4, xmm3
punpcklwd xmm4, xmm1
paddd xmm4, xmm0
movdqu xmm0, xmm3
punpckhwd xmm0, xmm1
paddd xmm0, xmm4
cmp eax, 0xa
je 0x43d918
movdqu xmm3, xmmword [rsp + 0xe0]
movdqu xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqu xmm4, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqu xmm4, xmm5
punpckhwd xmm4, xmm1
paddd xmm0, xmm4
movdqu xmm4, xmm3
punpcklwd xmm4, xmm1
paddd xmm4, xmm0
movdqu xmm0, xmm3
punpckhwd xmm0, xmm1
paddd xmm0, xmm4
cmp eax, 0xb
je 0x43d918
movdqu xmm3, xmmword [rsp + 0xf0]
movdqu xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqu xmm4, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqu xmm4, xmm5
punpckhwd xmm4, xmm1
paddd xmm0, xmm4
movdqu xmm4, xmm3
punpcklwd xmm4, xmm1
paddd xmm4, xmm0
movdqu xmm0, xmm3
punpckhwd xmm0, xmm1
paddd xmm0, xmm4
cmp eax, 0xc
je 0x43d918
movdqu xmm3, xmmword [rsp + 0x100]
movdqu xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqu xmm4, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqu xmm4, xmm5
punpckhwd xmm4, xmm1
paddd xmm0, xmm4
movdqu xmm4, xmm3
punpcklwd xmm4, xmm1
paddd xmm4, xmm0
movdqu xmm0, xmm3
punpckhwd xmm0, xmm1
paddd xmm0, xmm4
cmp eax, 0xd
je 0x43d918
movdqu xmm3, xmmword [rsp + 0x110]
movdqu xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqu xmm4, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqu xmm4, xmm5
punpckhwd xmm4, xmm1
paddd xmm0, xmm4
movdqu xmm4, xmm3
punpcklwd xmm4, xmm1
paddd xmm4, xmm0
movdqu xmm0, xmm3
punpckhwd xmm0, xmm1
paddd xmm0, xmm4
cmp eax, 0xf
jne 0x43d918
movdqu xmm3, xmmword [rsp + 0x120]
movdqu xmm4, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm4, xmm2
movdqu xmm2, xmm3
movdqu xmm3, xmm4
punpcklwd xmm3, xmm1
paddd xmm0, xmm3
movdqu xmm3, xmm4
punpckhwd xmm3, xmm1
paddd xmm0, xmm3
movdqu xmm3, xmm2
punpcklwd xmm3, xmm1
paddd xmm3, xmm0
movdqu xmm0, xmm2
punpckhwd xmm0, xmm1
paddd xmm0, xmm3
nop dword [rax]
movdqu xmm1, xmm0
mov edx, ecx
psrldq xmm1, 8
and edx, 0xfffffff0
paddd xmm0, xmm1
movdqu xmm1, xmm0
psrldq xmm1, 4
paddd xmm0, xmm1
movd eax, xmm0
test ecx, 0xffffff0f
je 0x43da98
movsxd r8, edx
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 1]
cmp ecx, r8d
jle 0x43da98
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 2]
cmp ecx, r8d
jle 0x43da98
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 3]
cmp ecx, r8d
jle 0x43da98
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 4]
cmp ecx, r8d
jle 0x43da98
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 5]
cmp ecx, r8d
jle 0x43da98
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 6]
cmp ecx, r8d
jle 0x43da98
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 7]
cmp ecx, r8d
jle 0x43da98
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 8]
cmp ecx, r8d
jle 0x43da98
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 9]
cmp ecx, r8d
jle 0x43da98
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 0xa]
cmp ecx, r8d
jle 0x43da98
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 0xb]
cmp ecx, r8d
jle 0x43da98
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 0xc]
cmp ecx, r8d
jle 0x43da98
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 0xd]
cmp ecx, r8d
jle 0x43da98
movsxd r8, r8d
add edx, 0xe
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
cmp ecx, edx
jle 0x43da98
movsxd rdx, edx
movzx edx, byte [rsp + rdx + 0x40]
add eax, edx
nop dword [rax]
mov r8d, dword [rbp]
lea edx, [r8 + rcx + 0x1b]
movzx ecx, byte [rsp + 0x26]
add eax, edx
movzx edx, byte [rsp + 0x27]
mov dword [rbp + 4], eax
movzx eax, byte [rsp + 0x28]
shl edx, 8
shl eax, 0x10
add ecx, edx
lea edx, [rcx + rax]
movzx eax, byte [rsp + 0x29]
shl eax, 0x18
add eax, edx
mov dword [rbp + 8], eax
cmp byte [rbx + 0x44], 0
jne 0x43dbd8
mov dword [rbx + 0x80], 0
cmp qword [rbx + 0x28], 0
je 0x43db90
mov rax, qword [rbx + 0x38]
add r8, qword [rbx + 0x30]
cmp r8, rax
jb 0x43dc3a
mov qword [rbx + 0x28], rax
mov eax, 1
mov dword [rbx + 0x80], 1
jmp 0x43d461
movdqu xmm3, xmmword [rax]
movups 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 [rbx + 0x28], rdx
mov byte [rsp + 0x3a], al
jmp 0x43d451
mov rcx, qword [rcx + 0x18]
call sub.msvcrt.dll_ftell
sub eax, dword [rbx + 0x20]
mov dword [rbp], eax
mov rax, qword [rbx + 0x28]
test rax, rax
jne 0x43d439
nop dword [rax]
mov r9, qword [rbx + 0x18]
lea rcx, [rsp + 0x20]
mov r8d, 1
mov edx, 0x1b
call sub.msvcrt.dll_fread
cmp rax, 1
jne 0x43d447
jmp 0x43d451
mov edx, r8d
add edx, dword [rbx + 0x20]
jb 0x43dc77
test r8d, r8d
js 0x43dc77
mov rcx, qword [rbx + 0x18]
xor r8d, r8d
call sub.msvcrt.dll_fseek
test eax, eax
je 0x43dbd8
mov edx, dword [rbx + 0x20]
mov rcx, qword [rbx + 0x18]
mov r8d, 2
mov dword [rbx + 0x80], 1
call sub.msvcrt.dll_fseek
nop dword [rax]
mov eax, 1
jmp 0x43d461
lea rdi, [rsp + 0x40]
cmp edx, 8
jb 0x43dc02
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 0x43dc12
mov ecx, dword [rax]
mov dword [rdi], ecx
mov ecx, 4
test dl, 2
je 0x43dc25
movzx r10d, word [rax + rcx]
mov word [rdi + rcx], r10w
add rcx, 2
and edx, 1
je 0x43dc31
movzx eax, byte [rax + rcx]
mov byte [rdi + rcx], al
mov qword [rbx + 0x28], r9
jmp 0x43d4ab
mov qword [rbx + 0x28], r8
mov eax, 1
jmp 0x43d461
mov r9, qword [rbx + 0x18]
lea rcx, [rsp + 0x40]
mov r8d, 1
call sub.msvcrt.dll_fread
cmp rax, 1
je 0x43dc6c
mov dword [rbx + 0x80], 1
movzx r8d, byte [rsp + 0x3a]
jmp 0x43d4ab
mov dword [rbx + 0x80], 1
mov edx, 0x7fffffff
jmp 0x43dba5
xor eax, eax
jmp 0x43da98
xor eax, eax
xor edx, edx
jmp 0x43d947