Function at 0x14023ff60
Capabilities:
Read file on windows

Disassembly:
push rbx
push rsi
push r12
push r13
push r15
sub rsp, 0x310
mov rax, qword [0x140377790]
xor rax, rsp
mov qword [rsp + 0x2c0], rax
mov rax, qword [rsp + 0x360]
mov r12, qword [rsp + 0x368]
mov qword [rsp + 0x78], r8
mov ebx, edx
mov r15d, 4
lea r8, [rsp + 0x44]
mov edx, r15d
mov qword [rsp + 0x70], rax
mov r13, r9
mov qword [rsp + 0x80], r9
mov esi, ecx
mov dword [rsp + 0x54], ecx
call fcn.140148380
cmp dword [rsp + 0x44], 0
je 0x14024081d
mov qword [rsp + 0x308], rbp
lea r8, [rsp + 0x60]
lea edx, [r15 + 4]
mov ecx, esi
mov qword [rsp + 0x300], rdi
mov qword [rsp + 0x2f8], r14
call fcn.140148380
xor r14d, r14d
mov esi, r14d
test ebx, ebx
je 0x1402407c9
test r12, r12
je 0x1402407c9
mov eax, dword [r12 + 0x64]
mov r8d, r14d
lea r11d, [r15 - 3]
mov edi, eax
and edi, 3
sete r8b
test al, 0x40
jne 0x140240034
test al, al
js 0x140240034
bt eax, 8
jb 0x140240034
mov ecx, r14d
jmp 0x140240037
mov ecx, r11d
test al, 0x20
jne 0x140240041
bt eax, 0xc
jae 0x140240044
mov ecx, r11d
mov edx, dword [0x14055ba80]
mov r9d, 3
mov dword [rsp + 0x4c], r9d
test ecx, ecx
je 0x14024005e
mov edx, r11d
jmp 0x14024007f
cmp edx, r15d
jne 0x140240070
cmp dword [0x1405636d8], esi
jne 0x14024007f
mov edx, r9d
jmp 0x140240075
cmp edx, r9d
jne 0x14024007f
cmp dword [0x1405636d4], esi
cmove edx, r14d
mov rax, qword [rsp + 0x60]
cmp eax, 5
ja case.default.0x14024009e
lea r10, [0x140000000]
movsxd rcx, eax
mov eax, dword [r10 + rcx*4 + 0x240840]
add rax, r10
jmp rax
mov dword [rsp + 0x40], r15d
mov r9d, r14d
mov dword [rsp + 0x4c], r14d
jmp 0x1402400e9
mov dword [rsp + 0x40], r9d
mov dword [rsp + 0x4c], r11d
mov r9d, r11d
jmp 0x1402400e9
mov r9d, 2
mov dword [rsp + 0x40], r11d
mov dword [rsp + 0x4c], r9d
jmp 0x1402400e9
mov dword [rsp + 0x40], r11d
jmp 0x1402400e9
mov eax, dword [rsp + 0x48]
mov r9d, dword [rsp + 0x48]
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x4c], r9d
test r9d, r9d
je 0x140240105
cmp r9d, r11d
jne 0x1402407c9
cmp edx, r15d
jne 0x1402407c9
mov ebp, r11d
jmp 0x140240125
cmp edx, r15d
jne 0x1402407c9
test r8d, r8d
je 0x140240118
mov ebp, r11d
jmp 0x140240125
cmp edi, r11d
mov ebp, r14d
setne bpl
add ebp, 2
cmp byte [r12], sil
je 0x1402407c9
mov r9d, dword [rsp + 0x370]
lea eax, [rbx - 1]
movsxd r13, eax
imul r13, r13, 0x128
add r13, qword [0x14037de60]
mov qword [rsp + 0x90], r13
test r9d, r9d
jne 0x140240180
lea rdx, [rsp + 0xa0]
mov rcx, r12
sub rdx, r12
nop word [rax + rax]
movzx eax, byte [rcx]
inc rcx
mov byte [rcx + rdx - 1], al
test al, al
jne 0x140240170
jmp 0x14024019a
lea rdx, str._s_d
lea rcx, [rsp + 0xa0]
inc r9d
mov r8, r12
call sub.MSVCR90.dll_sprintf
cmp dword [r13 + 0x110], esi
mov dword [rsp + 0x5c], r14d
jle 0x1402402ef
nop dword [rax]
mov rax, qword [r13 + 0x118]
movsxd rdi, r14d
lea rdx, [rsp + 0xa0]
imul rdi, rdi, 0x98
lea rcx, [rdi + rax]
call sub.MSVCR90.dll__stricmp
test eax, eax
jne 0x14024020c
mov rax, qword [r13 + 0x118]
lea rdx, [rdi + rax + 0x6c]
mov rax, qword [rdi + rax + 0x6c]
cmp rax, qword [r12 + 0x84]
jne 0x140240203
mov rax, qword [rdx + 8]
cmp rax, qword [r12 + 0x8c]
jne 0x140240203
xor eax, eax
jmp 0x140240208
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x140240222
inc r14d
cmp r14d, dword [r13 + 0x110]
mov dword [rsp + 0x5c], r14d
jl 0x1402401b0
jmp 0x1402402ef
lea r9, [r13 + 0x104]
lea r8, [0x14037dd54]
lea rdx, str._s_s
lea rcx, [rsp + 0x1b0]
call sub.MSVCR90.dll_sprintf
lea rdx, [0x140327fe8]
lea rcx, [rsp + 0x1b0]
call sub.MSVCR90.dll_fopen
mov rbx, rax
test rax, rax
je 0x1402402ef
mov rcx, qword [r13 + 0x118]
movsxd rdi, r14d
imul rdi, rdi, 0x98
mov ecx, dword [rdi + rcx + 0x84]
call fcn.14014a890
mov rcx, qword [r13 + 0x118]
xor r8d, r8d
mov qword [rdi + rcx + 0x88], rax
mov rcx, qword [r13 + 0x118]
mov edx, dword [rdi + rcx + 0x90]
mov rcx, rbx
call sub.MSVCR90.dll_fseek
mov rcx, qword [r13 + 0x118]
mov esi, 1
movsxd r8, dword [rdi + rcx + 0x84]
mov rcx, qword [rdi + rcx + 0x88]
mov r9, rbx
mov rdx, rsi
call sub.MSVCR90.dll_fread
mov rcx, rbx
call sub.MSVCR90.dll_fclose
mov edx, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x54]
add edx, 0xfffffff8
mov r8d, esi
call fcn.1401482f0
lea esi, [r14 + 1]
mov edx, dword [r13 + 0x110]
cmp r14d, edx
jne 0x140240756
mov rcx, qword [r13 + 0x118]
inc edx
movaps xmmword [rsp + 0x2d0], xmm7
imul edx, edx, 0x98
call fcn.14014a8b0
movsxd rcx, dword [r13 + 0x110]
mov rsi, rcx
mov qword [r13 + 0x118], rax
imul rsi, rsi, 0x98
add rsi, rax
lea eax, [rcx + 1]
lea rcx, [rsp + 0xa0]
mov dword [r13 + 0x110], eax
lea rax, [rsp + 0xa0]
mov rdx, rsi
sub rdx, rax
nop word [rax + rax]
movzx eax, byte [rcx]
inc rcx
mov byte [rcx + rdx - 1], al
test al, al
jne 0x140240360
mov eax, dword [r12 + 0x68]
xor ecx, ecx
mov edx, 1
mov dword [rsi + 0x64], eax
mov eax, dword [r12 + 0x6c]
mov dword [rsi + 0x68], eax
mov rax, qword [r12 + 0x84]
mov qword [rsi + 0x6c], rax
mov rax, qword [r12 + 0x8c]
mov dword [rsi + 0x7c], edx
mov qword [rsi + 0x74], rax
movzx eax, byte [r12 + 0x64]
and al, 3
cmp al, dl
sete cl
inc ecx
mov dword [rsp + 0x58], ecx
test ebp, ebp
jle 0x1402403c5
cmp ebp, 2
jle 0x1402404ef
cmp ebp, 3
je 0x1402403ca
mov r15d, dword [rsp + 0x48]
mov dword [rsi + 0x84], 0
mov ebx, dword [r12 + 0x68]
mov edi, dword [r12 + 0x6c]
test ebx, ebx
jle 0x14024041c
test edi, edi
jle 0x14024041c
mov r8d, r15d
mov edx, edi
mov ecx, ebx
call fcn.140131f50
add eax, 4
add dword [rsi + 0x84], eax
cmp ebx, 1
jne 0x140240404
cmp edi, ebx
je 0x14024041c
sar ebx, 1
mov edx, 1
cmp ebx, 1
cmovl ebx, edx
sar edi, 1
cmp edi, edx
cmovl edi, edx
test ebx, ebx
jg 0x1402403e2
mov ecx, dword [rsi + 0x84]
movaps xmmword [rsp + 0x2e0], xmm6
call fcn.14014a890
mov dword [rsi + 0x80], ebp
mov dword [rsi + 0x90], 0xffffffff
mov qword [rsi + 0x88], rax
mov ecx, dword [rsp + 0x44]
call fcn.14014a890
mov rcx, qword [rsp + 0x60]
mov qword [rax], rcx
mov edx, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x54]
lea r8, [rax + 8]
add edx, 0xfffffff8
mov rdi, rax
call fcn.140148380
mov ecx, dword [r12 + 0x6c]
mov r9d, dword [r12 + 0x68]
mov r8d, dword [rsp + 0x44]
lea rax, [rsp + 0x48]
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ecx
lea rcx, [rsp + 0x68]
mov rdx, rdi
call fcn.14023fe00
mov rcx, rdi
call fcn.14014a8e0
movsxd rbx, dword [rsp + 0x58]
mov rbp, qword [rsp + 0x68]
movss xmm7, dword [0x140339240]
cmp ebx, 2
jne 0x1402404f7
movss xmm0, dword [0x140339228]
mov r9d, dword [rsp + 0x4c]
mov r8d, dword [r12 + 0x6c]
mov edx, dword [r12 + 0x68]
movss dword [rsp + 0x28], xmm0
mov rcx, rbp
movss dword [rsp + 0x20], xmm7
call fcn.14023ebc0
movaps xmm6, xmm0
jmp 0x1402404fd
mov r15d, edx
jmp 0x1402403ca
movss xmm6, dword [rsp + 0x48]
mov rcx, qword [rsi + 0x88]
mov edi, dword [r12 + 0x6c]
or r15d, 0x30
xor eax, eax
mov dword [rsp + 0x68], r15d
mov r15d, dword [r12 + 0x68]
xor esi, esi
mov dword [rsp + 0x50], eax
mov qword [rsp + 0x88], rcx
mov r12, rbx
test r15d, r15d
jle 0x14024070d
test edi, edi
jle 0x1402406fc
mov r13d, dword [rsp + 0x68]
mov edx, edi
mov ecx, r15d
mov r8d, r13d
call fcn.140131f50
movsxd rcx, esi
add esi, 4
mov ebx, eax
mov rax, qword [rsp + 0x88]
movsxd r9, esi
mov dword [rcx + rax], ebx
mov r8d, edi
mov edx, r15d
add r9, rax
mov rcx, rbp
mov dword [rsp + 0x20], r13d
call fcn.140131f60
cmp r15d, 1
jne 0x140240588
cmp edi, r15d
je 0x1402406f8
add esi, ebx
mov eax, 1
mov ebx, r15d
sar ebx, 1
mov dword [rsp + 0x48], esi
mov esi, edi
cmp ebx, 1
cmovl ebx, eax
sar esi, 1
cmp esi, eax
cmovl esi, eax
cmp r12, 2
jne 0x1402405e3
mov r12d, esi
imul r12d, ebx
mov r14d, r12d
imul r14d, dword [rsp + 0x40]
lea ecx, [r14 + r14]
call fcn.14014a890
cmp dword [rsp + 0x50], 0
mov r13, rax
jle 0x140240604
mov eax, dword [rsp + 0x40]
imul edi, r15d
imul edi, eax
movsxd rcx, edi
sub rbp, rcx
jmp 0x140240608
mov r12d, esi
imul r12d, ebx
mov r14d, r12d
imul r14d, dword [rsp + 0x40]
mov ecx, r14d
call fcn.14014a890
mov r13, rax
mov eax, dword [rsp + 0x40]
jmp 0x140240608
mov eax, dword [rsp + 0x40]
mov edi, dword [rsp + 0x50]
test edi, edi
js 0x140240651
cmp dword [0x14055bae0], 0
je 0x140240651
cmp eax, 4
jne 0x140240651
mov eax, 0x55555556
mov ecx, edi
imul edi
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
mov eax, 0xff
shl ecx, 3
shl eax, cl
or eax, 0xff000000
test r12d, r12d
jle 0x14024069e
mov ecx, r12d
mov rdi, r13
rep stosd dword [rdi], eax
jmp 0x14024069e
cmp ebx, 1
jne 0x14024066d
mov r9d, esi
mov r8d, ebx
mov rdx, r13
mov rcx, rbp
mov dword [rsp + 0x20], eax
call fcn.14023e930
jmp 0x14024069e
cmp esi, 1
jne 0x140240689
mov r9d, esi
mov r8d, ebx
mov rdx, r13
mov rcx, rbp
mov dword [rsp + 0x20], eax
call fcn.14023e9a0
jmp 0x14024069e
mov r9d, esi
mov r8d, ebx
mov rdx, r13
mov rcx, rbp
mov dword [rsp + 0x20], eax
call fcn.14023ea10
mov rcx, rbp
call fcn.14014a8e0
movsxd rax, dword [rsp + 0x58]
mov r15d, ebx
mov edi, esi
mov rbp, r13
mov r12, rax
cmp rax, 2
jne 0x1402406e0
mov r9d, dword [rsp + 0x4c]
mov r8d, esi
mov edx, ebx
mov rcx, r13
movss dword [rsp + 0x28], xmm7
movss dword [rsp + 0x20], xmm6
call fcn.14023eca0
movsxd rbp, r14d
add rbp, r13
mov eax, dword [rsp + 0x50]
mov esi, dword [rsp + 0x48]
inc eax
mov dword [rsp + 0x50], eax
test ebx, ebx
jg 0x140240533
jmp 0x1402406fc
mov eax, dword [rsp + 0x50]
mov r13, qword [rsp + 0x90]
mov r14d, dword [rsp + 0x5c]
mov ebx, dword [rsp + 0x58]
movaps xmm7, xmmword [rsp + 0x2d0]
movaps xmm6, xmmword [rsp + 0x2e0]
cmp ebx, 2
jne 0x140240735
test eax, eax
jle 0x140240735
imul edi, r15d
imul edi, dword [rsp + 0x40]
movsxd rax, edi
sub rbp, rax
mov rcx, rbp
call fcn.14014a8e0
cmp dword [r13 + 0x124], 0
lea esi, [r14 + 1]
jne 0x140240756
mov dword [r13 + 0x124], 1
test esi, esi
je 0x1402407be
mov rax, qword [r13 + 0x118]
movsxd rdi, esi
imul rdi, rdi, 0x98
mov ecx, dword [rdi + rax - 0x14]
mov rax, qword [rsp + 0x78]
mov dword [rax], ecx
mov rax, qword [r13 + 0x118]
mov ecx, dword [rdi + rax - 0x14]
call fcn.14014a890
mov rcx, qword [rsp + 0x80]
mov qword [rcx], rax
mov rdx, qword [r13 + 0x118]
mov rcx, rax
movsxd r8, dword [rdi + rdx - 0x14]
mov rdx, qword [rdi + rdx - 0x10]
call sub.MSVCR90.dll_memcpy
mov rdx, qword [r13 + 0x118]
mov rcx, qword [rsp + 0x70]
mov eax, dword [rdi + rdx - 0x18]
mov dword [rcx], eax
jmp 0x140240805
mov r13, qword [rsp + 0x80]
xor r14d, r14d
mov rax, qword [rsp + 0x78]
mov ecx, dword [rsp + 0x44]
mov dword [rax], ecx
call fcn.14014a890
mov rdx, qword [rsp + 0x60]
mov ecx, dword [rsp + 0x54]
mov qword [r13], rax
mov qword [rax], rdx
mov r8, qword [r13]
mov edx, dword [rsp + 0x44]
add r8, 8
add edx, 0xfffffff8
call fcn.140148380
mov rcx, qword [rsp + 0x70]
mov dword [rcx], r14d
mov rdi, qword [rsp + 0x300]
mov rbp, qword [rsp + 0x308]
mov r14, qword [rsp + 0x2f8]
xor eax, eax
mov rcx, qword [rsp + 0x2c0]
xor rcx, rsp
call fcn.140291ec0
add rsp, 0x310
pop r15
pop r13
pop r12
pop rsi
pop rbx
ret