Function at 0x13295e0
Capabilities:
Read file on windows

Disassembly:
mov r11, rsp
mov qword [r11 + 0x20], r9
mov dword [r11 + 0x18], r8d
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x1d0
mov qword [rsp + 0x1a8], 0xfffffffffffffffe
mov ebx, r8d
mov r15, rdx
mov rsi, rcx
mov qword [rsp + 0x48], 0
mov byte [rsp + 0x31], 0
mov byte [rsp + 0x30], 1
mov rax, qword [0x039f11b0]
mov r10, qword [rax + 0x2e8]
mov rax, qword [r10 + 0x10a68]
mov qword [rsp + 0x78], rax
xor r13d, r13d
mov dword [rsp + 0x34], r13d
lea rdi, [rdx + 0x8c]
mov qword [r11 - 0x80], rdi
mov rcx, qword [rcx + 0x78]
test rcx, rcx
je 0x141f706
mov qword [r11 - 0x120], rcx
add rcx, 0x20
mov rax, qword [rcx]
call qword [rax + 0x80]
test al, al
je 0x141f706
mov r14, qword [rsi + 0x78]
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x158], r14
mov ecx, dword [rdi + 0xc]
imul rbx, rcx
mov qword [rsp + 0xa8], rbx
mov r12, qword [rdi + 0x28]
cmp rbx, r12
jge 0x141fbf3
lea rax, [rbx + rcx]
cmp rax, r12
jge 0x13298f9
mov r12d, ecx
mov dword [rsp + 0x68], ecx
cmp r12d, ecx
jb 0x1329940
mov rax, qword [r14 + 0x60]
mov qword [rsp + 0xf8], rax
shr rax, 9
and al, 1
mov qword [rsp + 0x50], rax
mov byte [rsp + 0x3e], al
jne 0x141f738
mov r14d, r12d
mov dword [rsp + 0x5c], r12d
mov rax, qword [0x039f1198]
test rax, rax
je 0x132971c
add dword [rax + 0xd8], 1
mov rcx, qword [0x039f1198]
mov eax, r14d
shr eax, 0xa
add dword [rcx + 0xdc], eax
add rbx, qword [r15 + 0xbc]
mov qword [rsp + 0xa8], rbx
mov rax, qword [0x039f11b0]
mov rcx, qword [rax + 0x2e8]
mov qword [rsp + 0x168], rcx
call fcn.01328fe0
mov rsi, rax
mov qword [rsp + 0x48], rax
mov dword [rax + 0x68], ebx
mov rcx, rbx
sar rcx, 0x20
mov dword [rax + 0x6c], ecx
mov eax, dword [rsp + 0x220]
mov dword [rsi + 0x20], eax
mov dword [rsi + 0x24], 1
mov dword [rsi + 0x34], 0xffffffff
mov r15, qword [rsp + 0x240]
mov qword [rsi + 0x10], r15
mov rdi, qword [rsp + 0x248]
mov qword [rsi + 0x18], rdi
mov dword [rsi + 0x30], 0
mov byte [rsi + 0x41], 1
mov dword [rsi + 0x28], r14d
mov dword [rsi + 0x2c], r12d
mov byte [rsp + 0x32], 1
mov rax, qword [rsp + 0x210]
mov rcx, qword [rax + 0x70]
mov qword [rsp + 0x118], rcx
test rcx, rcx
je 0x13297ce
mov rax, qword [rcx]
call qword [rax + 0x1d0]
cmp eax, 1
je 0x141f780
mov dword [rsp + 0x38], 0
lea rbx, [rsi + 0x58]
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx]
call qword [rax + 0x200]
mov rcx, rax
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x38]
mov r8d, r14d
mov rdx, qword [rsp + 0x228]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rsp + 0x60], eax
test eax, eax
je 0x141f8ac
xor ebx, ebx
mov dword [rsp + 0x58], ebx
jmp 0x132981a
mov rcx, qword [rsp + 0x78]
test rcx, rcx
jne 0x141f8bd
cmp dword [rsp + 0x60], 0
je 0x141f8e4
xor bl, bl
mov byte [rsp + 0x30], bl
mov dword [rsi + 0x34], 0
mov ecx, dword [rsp + 0x38]
call fcn.01179b20
cmp byte [rsp + 0x50], 0
jne 0x141fb28
mov eax, dword [rsp + 0x38]
cmp eax, r14d
jne 0x141fb36
mov rcx, qword [rsp + 0x230]
test rcx, rcx
je 0x141fca4
mov dword [rcx], eax
mov r12d, 1
jmp 0x132987c
jmp 0x132987e
test rsi, rsi
je 0x13298c1
test bl, bl
jne 0x1329891
movzx ebx, bl
test r13d, r13d
cmovs ebx, r12d
movzx r8d, bl
mov rdx, rsi
mov rcx, r15
call fcn.01328e50
cmp byte [rsp + 0x31], 0
jne 0x141fdd5
mov rdx, rsi
mov rcx, qword [0x039f11b0]
mov rcx, qword [rcx + 0x2e8]
call fcn.01328e00
mov eax, r13d
add rsp, 0x1d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
sub r12d, ebx
mov dword [rsp + 0x68], r12d
jmp 0x13296c4
cmp byte [rsp + 0x250], 0
je 0x13296cd
sub ecx, r12d
mov r8d, ecx
mov ecx, r12d
add rcx, qword [rsp + 0x228]
xor edx, edx
call sub.MSVCR80.dll_memset
nop
jmp 0x13296cd
mov rcx, rsi
call fcn.01179b70
mov r13d, eax
mov dword [rsp + 0x34], eax
test eax, eax
jns 0x1329683
mov rdi, qword [rsp + 0x248]
mov r15, qword [rsp + 0x240]
mov r12d, 1
jmp 0x141fd15
mov rax, qword [0x039f11b0]
mov rdx, qword [rax + 0x2e8]
mov qword [rsp + 0xd0], rdx
mov ecx, dword [rdx + 0x68]
mov dword [rsp + 0x8c], ecx
mov qword [rsp + 0x108], rdx
mov eax, ecx
mov dword [rsp + 0x88], ecx
lea r14d, [rcx + r12 - 1]
add eax, 0xffffffff
not eax
and r14d, eax
mov dword [rsp + 0x5c], r14d
jmp 0x13296f6
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rcx, qword [rsp + 0x70]
mov r11, qword [rcx]
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, qword [rsp + 0x228]
mov rdx, rbx
call qword [r11 + 0x1e8]
mov dword [rsp + 0x90], eax
test eax, eax
jns 0x141f891
mov byte [rsp + 0x30], 1
xor ebx, ebx
mov dword [rsp + 0xa0], ebx
mov qword [rsp + 0x20], 0x1000000f
xor r9d, r9d
xor r8d, r8d
mov edx, ebx
mov ecx, eax
call fcn.0124e580
mov rax, qword [rsp + 0x218]
add rax, 0x70
mov qword [rsp + 0x198], rax
cmp qword [rax], rbx
je 0x141f81b
mov rax, qword [rax]
mov qword [rsp + 0x128], rax
movzx ecx, byte [rax - 5]
test cl, 0x40
jne 0x141f816
test cl, 0x20
je 0x141f81e
mov rax, qword [rax]
jmp 0x141f81e
mov rax, rbx
mov r8, qword [rsp + 0x210]
add r8, 0x50
mov qword [rsp + 0x178], r8
cmp qword [r8], rbx
je 0x141f856
mov r8, qword [r8]
mov qword [rsp + 0x138], r8
movzx ecx, byte [r8 - 5]
test cl, 0x40
jne 0x141f851
test cl, 0x20
je 0x141f859
mov r8, qword [r8]
jmp 0x141f859
mov r8, rbx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rax
lea r9, [0x01582350]
lea rdx, [0x01580be8]
mov ecx, 0xc102004e
call fcn.017ee830
mov dword [rsp + 0xb8], eax
mov dword [rsp + 0x34], eax
mov r12d, 1
jmp 0x141fd15
xor bl, bl
mov byte [rsp + 0x30], bl
mov qword [rsi + 0x58], 0
mov eax, dword [rsp + 0x38]
mov qword [rsi + 0x60], rax
jmp 0x1329849
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [rsp + 0x58], eax
jmp 0x132981a
mov dword [rsp + 0x28], ebx
mov eax, dword [rsp + 0x220]
mov dword [rsp + 0x20], eax
mov r9, rdi
mov r8, r15
lea rdx, [0x0141fe30]
call fcn.02d89bd0
nop
jmp 0x1329828
cmp ebx, 0x26
je 0x1329833
mov dword [rsi + 0x34], ebx
cmp ebx, 0x3e5
je 0x141f9fd
mov rdx, qword [rsi + 0x18]
mov qword [rsp + 0x50], rdx
add rdx, 8
mov eax, dword [rdx]
mov dword [rsp + 0x40], eax
mov ecx, eax
and ecx, 0xfffffff
bts ecx, 0x1d
mov dword [rsp + 0xa4], ecx
mov qword [rsp + 0x1b8], rdx
lock cmpxchg dword [rdx], ecx
mov dword [rsp + 0x80], eax
cmp dword [rsp + 0x40], eax
sete al
mov byte [rsp + 0x3d], al
test al, al
jne 0x141f94b
mov rdx, qword [rsp + 0x50]
jmp 0x141f905
mov rax, qword [rsp + 0x218]
add rax, 0x70
mov qword [rsp + 0x148], rax
cmp qword [rax], 0
je 0x141f983
mov rax, qword [rax]
mov qword [rsp + 0xd8], rax
movzx ecx, byte [rax - 5]
test cl, 0x40
jne 0x141f97e
test cl, 0x20
je 0x141f985
mov rax, qword [rax]
jmp 0x141f985
xor eax, eax
mov r8, qword [rsp + 0x210]
add r8, 0x50
mov qword [rsp + 0xe0], r8
cmp qword [r8], 0
je 0x141f9be
mov r8, qword [r8]
mov qword [rsp + 0xf0], r8
movzx ecx, byte [r8 - 5]
test cl, 0x40
jne 0x141f9b9
test cl, 0x20
je 0x141f9c1
mov r8, qword [r8]
jmp 0x141f9c1
xor r8d, r8d
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rax
lea r9, [0x01582350]
lea rdx, [0x01580be8]
mov ecx, 0xc1020041
call fcn.017ee830
mov dword [rsp + 0xc0], eax
mov dword [rsp + 0x34], eax
mov r12d, 1
jmp 0x141fd15
xor bl, bl
mov byte [rsp + 0x30], bl
mov byte [rsp + 0x32], bl
cmp byte [rsp + 0x238], bl
je 0x141fa42
mov ecx, r14d
call fcn.01179b20
mov r11, qword [0x039f11b0]
mov rcx, qword [r11 + 0x2e8]
mov qword [rsp + 0x100], rcx
mov rdx, rsi
call fcn.01820540
xor esi, esi
mov qword [rsp + 0x48], rsi
jmp 0x1329849
mov ebx, 1
mov dword [rsi + 0x30], ebx
mov rax, qword [0x039f11b0]
mov rcx, qword [rax + 0x2e8]
mov qword [rsp + 0x110], rcx
mov rdx, rsi
call fcn.01820540
mov byte [rsp + 0x31], bl
mov rax, qword [0x039f11b0]
mov rcx, qword [rax + 0x2e8]
mov qword [rsp + 0x120], rcx
mov rdx, rsi
call fcn.0181fb90
mov r13d, eax
mov dword [rsp + 0x34], eax
test eax, eax
jns 0x141faa0
mov r12d, 1
jmp 0x141fd15
mov rdx, qword [rsi + 0x10]
mov qword [rsp + 0x130], rdx
lea rcx, [rdx + 0x220]
mov rax, qword [rcx]
mov qword [rsp + 0x140], rax
test rax, rax
je 0x141facd
mov qword [rsp + 0xc8], rcx
jmp 0x141fadc
lea rcx, [rdx + 0x218]
mov qword [rsp + 0xc8], rcx
mov rax, qword [rcx]
mov qword [rsp + 0x150], rax
mov rcx, qword [rax + 0x70]
mov rax, qword [rcx]
call qword [rax + 0x200]
mov rcx, rax
mov r9d, ebx
lea r8, [rsp + 0x64]
lea rdx, [rsi + 0x58]
call fcn.01797080
xor ebx, ebx
test eax, eax
sete bl
mov byte [rsp + 0x30], bl
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x38], eax
mov rcx, rax
call fcn.01179b20
jmp 0x1329849
mov eax, dword [rsp + 0x38]
cmp eax, r12d
jb 0x141fb36
jmp 0x1329861
cmp byte [rsp + 0x32], 0
je 0x1329861
mov rax, qword [rsp + 0x218]
add rax, 0x70
mov qword [rsp + 0x160], rax
cmp qword [rax], 0
je 0x141fb79
mov rax, qword [rax]
mov qword [rsp + 0x170], rax
movzx ecx, byte [rax - 5]
test cl, 0x40
jne 0x141fb74
test cl, 0x20
je 0x141fb7b
mov rax, qword [rax]
jmp 0x141fb7b
xor eax, eax
mov r8, qword [rsp + 0x210]
add r8, 0x50
mov qword [rsp + 0x180], r8
cmp qword [r8], 0
je 0x141fbb4
mov r8, qword [r8]
mov qword [rsp + 0x190], r8
movzx ecx, byte [r8 - 5]
test cl, 0x40
jne 0x141fbaf
test cl, 0x20
je 0x141fbb7
mov r8, qword [r8]
jmp 0x141fbb7
xor r8d, r8d
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rax
lea r9, [0x01582350]
lea rdx, [0x01580be8]
mov ecx, 0xc1020034
call fcn.017ee830
mov dword [rsp + 0x98], eax
mov dword [rsp + 0x34], eax
mov r12d, 1
jmp 0x141fd15
movzx eax, byte [rsi + 0x18]
shr al, 6
test al, 1
je 0x141fcaf
mov dword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x230]
test rcx, rcx
je 0x141fc1c
mov eax, dword [rdi + 0xc]
mov dword [rcx], eax
mov r15, qword [rsp + 0x240]
mov eax, dword [r15 + 0xcc]
mov dword [rsp + 0xb0], eax
mov rbx, qword [rsp + 0x248]
mov rcx, qword [rbx]
mov qword [rsp + 0x1a0], rcx
mov r8, rax
xor edx, edx
call sub.MSVCR80.dll_memset
lea rdx, [rbx + 8]
mov eax, dword [rdx]
mov dword [rsp + 0x44], eax
mov ecx, eax
and ecx, 0xfffffff
bts ecx, 0x1c
mov dword [rsp + 0x84], ecx
mov qword [rsp + 0x1b0], rdx
lock cmpxchg dword [rdx], ecx
mov dword [rsp + 0x78], eax
cmp dword [rsp + 0x44], eax
sete al
mov byte [rsp + 0x3f], al
test al, al
je 0x141fc4f
mov r12d, 1
mov rsi, qword [rsp + 0x48]
mov bl, byte [rsp + 0x30]
mov r13d, dword [rsp + 0x34]
jmp 0x132987c
mov r12d, 1
jmp 0x132987c
lea r8, [0x0141fdf0]
mov edx, 0x5cc
lea rcx, [0x01583b50]
call fcn.017eea00
mov dword [rsp + 0x70], eax
mov dword [rsp + 0x34], eax
mov rdi, qword [rsp + 0x248]
mov r15, qword [rsp + 0x240]
mov r12d, 1
jmp 0x141fd15
mov eax, dword [rdi + 8]
and eax, 0xf0000000
cmp eax, 0x10000000
je 0x141fd32
cmp eax, 0x20000000
je 0x141fda6
cmp byte [rsp + 0x31], 0
jne 0x141fda6
cmp qword [rdi], 0
je 0x141fd88
mov eax, dword [rdi + 8]
mov edx, dword [rdi + 8]
mov ecx, edx
and ecx, 0xfffffff
or ecx, 0x70000000
mov eax, edx
lock cmpxchg dword [rdi + 8], ecx
cmp edx, eax
jne 0x141fd3b
mov rdx, rdi
mov rcx, r15
call fcn.018658c0
nop
nop
nop
nop
mov edx, dword [rdi + 8]
mov ecx, edx
and ecx, 0xfffffff
mov eax, edx
lock cmpxchg dword [rdi + 8], ecx
cmp edx, eax
jne 0x141fd70
jmp 0x141fda6
mov eax, dword [rdi + 8]
nop
nop
mov edx, dword [rdi + 8]
mov ecx, edx
and ecx, 0xfffffff
mov eax, edx
lock cmpxchg dword [rdi + 8], ecx
cmp edx, eax
jne 0x141fd90
lock add dword [r15 + 0x23c], 1
mov rax, qword [0x039f1198]
test rax, rax
je 0x141fdc2
add dword [rax + 0xec], 1
mov rsi, qword [rsp + 0x48]
mov bl, byte [rsp + 0x30]
mov r13d, dword [rsp + 0x34]
jmp 0x132987e
mov rdx, rsi
mov rcx, qword [0x039f11b0]
mov rcx, qword [rcx + 0x2e8]
call fcn.01821180
jmp 0x13298c1