Function at 0x180010e48
Capabilities:
Read file on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x398]
sub rsp, 0x498
mov rax, qword [0x1800d61f8]
xor rax, rsp
mov qword [rbp + 0x380], rax
mov r13, qword [rbp + 0x400]
mov rbx, r9
mov rsi, r8
mov qword [rsp + 0x40], rdx
mov rdi, rdx
mov qword [rsp + 0x50], rcx
call fcn.180005ccc
mov r15, rax
test r13, r13
je 0x180010ea1
and qword [r13], 0
test rbx, rbx
je 0x180010f99
mov r9, qword [rsi + 0x38]
xor r12d, r12d
xor r11d, r11d
mov rdx, rbx
add r9, 1
je 0x180010f7b
mov r8d, dword [rdi + 0x108]
cmp r8d, 0xc
jne 0x180010edb
cmp rdx, 0xff8
jae 0x180010f7b
cmp r8d, 0x10
jne 0x180010eee
cmp rdx, 0xfff8
jae 0x180010f7b
cmp r8d, 0x20
jne 0x180010efd
cmp rdx, 0xffffff8
jae 0x180010f7b
cmp rdx, 2
jb 0x180010f99
cmp rdx, r9
ja 0x180010f99
mov rax, qword [rsi + 8]
imul rax, qword [rsi]
add r12, rax
cmp r8d, 0xc
je 0x180010f46
cmp r8d, 0x10
je 0x180010f3c
cmp r8d, 0x20
jne 0x180010f6c
mov rax, qword [rsi + 0x40]
mov edx, dword [rax + rdx*4]
and edx, 0xfffffff
jmp 0x180010f6c
mov rax, qword [rsi + 0x40]
movzx edx, word [rax + rdx*2]
jmp 0x180010f6c
mov rax, qword [rsi + 0x40]
mov rcx, rdx
shr rcx, 1
add rcx, rdx
test dl, 1
movzx r10d, word [rcx + rax]
mov edx, r10d
je 0x180010f66
shr rdx, 4
jmp 0x180010f6c
and edx, 0xfff
inc r11d
movsxd rax, r11d
cmp rax, r9
jb 0x180010ec8
movsxd rax, r11d
cmp rax, r9
jb 0x180010fbe
lea r9, str.Infinite_loop_in_FAT_detected__perhaps_the_disk_is_corrupted.
xor r8d, r8d
mov rcx, r15
lea edx, [r8 + 2]
call fcn.180004968
xor eax, eax
mov rcx, qword [rbp + 0x380]
xor rcx, rsp
call fcn.1800149a0
add rsp, 0x498
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov eax, 0xffffffff
cmp r12, rax
jbe 0x180010fe5
xor r8d, r8d
mov qword [rsp + 0x20], r12
lea r9, str.Directory_is_too_big___I64u_bytes
mov rcx, r15
lea edx, [r8 + 2]
call fcn.180004968
jmp 0x180010f99
mov rcx, r12
call fcn.180026bf8
mov r14, rax
test rax, rax
jne 0x180010ffe
lea r9, str.Error:_malloc___returned_NULL.
jmp 0x180010f8a
mov r8, qword [rsi + 0x38]
xor r10d, r10d
and qword [rsp + 0x38], 0
xor edi, edi
mov r9, rbx
mov dword [rsp + 0x30], r10d
lea rax, [r8 + 1]
test rax, rax
je 0x180011279
mov rax, qword [rsp + 0x40]
mov edx, dword [rax + 0x108]
cmp edx, 0xc
jne 0x18001103f
cmp rbx, 0xff8
jae 0x1800111e9
cmp edx, 0x10
jne 0x180011051
cmp rbx, 0xfff8
jae 0x1800111e9
cmp edx, 0x20
jne 0x180011063
cmp rbx, 0xffffff8
jae 0x1800111e9
cmp rbx, 2
jb 0x1800111e9
lea rax, [r8 + 1]
cmp rbx, rax
ja 0x1800111e9
lea rax, [rdi + 1]
mov rcx, r8
cmp rbx, rax
je 0x180011135
test rdi, rdi
je 0x180011135
and qword [rsp + 0x70], 0
lea rax, [r9 - 2]
imul rax, qword [rsi + 8]
sub rdi, r9
xor r8d, r8d
add rax, qword [rsi + 0x20]
lea r9, str.Reading_directory_fragment___I64u_bytes_at_offset_I64u.
imul rax, qword [rsi]
inc rdi
lea edx, [r8 + 6]
imul rdi, qword [rsi]
mov rcx, rax
mov qword [rsp + 0x28], rax
imul rdi, qword [rsi + 8]
shr rcx, 0x20
mov dword [rsp + 0x6c], ecx
mov rcx, r15
mov dword [rsp + 0x68], eax
mov qword [rsp + 0x20], rdi
call fcn.180004968
mov rdx, qword [rsp + 0x38]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x48]
mov rax, qword [rsp + 0x40]
add rdx, r14
mov r8d, edi
mov rcx, qword [rax + 0x20]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x18001119e
mov rax, qword [rsp + 0x40]
mov r9, rbx
add qword [rsp + 0x38], rdi
mov rcx, qword [rsi + 0x38]
mov r10d, dword [rsp + 0x30]
mov edx, dword [rax + 0x108]
mov rdi, rbx
cmp edx, 0xc
je 0x180011160
cmp edx, 0x10
je 0x180011156
cmp edx, 0x20
jne 0x180011183
mov rax, qword [rsi + 0x40]
mov ebx, dword [rax + rbx*4]
and ebx, 0xfffffff
jmp 0x180011183
mov rax, qword [rsi + 0x40]
movzx ebx, word [rax + rbx*2]
jmp 0x180011183
mov rax, rbx
shr rax, 1
add rax, qword [rsi + 0x40]
test bl, 1
movzx r8d, word [rax + rbx]
mov ebx, r8d
je 0x18001117d
shr rbx, 4
jmp 0x180011183
and ebx, 0xfff
inc r10d
mov r8, rcx
inc rcx
movsxd rax, r10d
mov dword [rsp + 0x30], r10d
cmp rax, rcx
jae 0x1800111f2
jmp 0x18001102d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsp + 0x50]
lea r8, [rbp - 0x80]
mov edx, eax
mov r9d, 0x200
mov rcx, qword [rcx]
call sym.JkDefrag.dll_public:_void___cdecl_JKDefragLib::SystemErrorStr_unsigned_long_int__wchar_t____ptr64__unsigned_long_long_unsigned___int64_____ptr64
xor r8d, r8d
lea rax, [rbp - 0x80]
lea r9, str.Error:__s
mov qword [rsp + 0x20], rax
mov rcx, r15
lea edx, [r8 + 2]
call fcn.180004968
mov rcx, r14
call fcn.180053d58
jmp 0x180010f99
test rdi, rdi
je 0x180011279
and qword [rsp + 0x70], 0
lea rax, [r9 - 2]
imul rax, qword [rsi + 8]
sub rdi, r9
xor r8d, r8d
add rax, qword [rsi + 0x20]
lea r9, str.Reading_directory_fragment___I64u_bytes_at_offset_I64u.
imul rax, qword [rsi]
inc rdi
lea edx, [r8 + 6]
mov qword [rsp + 0x28], rax
mov rcx, r15
imul rdi, qword [rsi]
mov r10, rax
mov dword [rsp + 0x68], eax
imul rdi, qword [rsi + 8]
shr r10, 0x20
mov dword [rsp + 0x6c], r10d
mov qword [rsp + 0x20], rdi
call fcn.180004968
mov rdx, qword [rsp + 0x38]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x48]
mov rax, qword [rsp + 0x40]
add rdx, r14
mov r8d, edi
mov rcx, qword [rax + 0x20]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x18001119e
test r13, r13
je 0x180011282
mov qword [r13], r12
mov rax, r14
jmp 0x180010f9b