Function at 0x22dcb5c50
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x418
movaps xmmword [rsp + 0x3e0], xmm6
movaps xmmword [rsp + 0x3f0], xmm7
movaps xmmword [rsp + 0x400], xmm8
lea rdx, [0x22dda3abc]
mov r13, rcx
call sub.msvcrt.dll_fopen
mov r12, rax
test rax, rax
je 0x22dcb5f19
lea r14, [rsp + 0xe0]
mov r8, rax
mov edx, 0x100
mov qword [rsp + 0xe0], 0
mov qword [rsp + 0xe8], 0
mov rcx, r14
mov qword [rsp + 0xf0], 0
mov qword [rsp + 0xf8], 0
mov qword [rsp + 0x100], 0
mov qword [rsp + 0x108], 0
mov qword [rsp + 0x110], 0
mov qword [rsp + 0x118], 0
mov qword [rsp + 0x120], 0
mov qword [rsp + 0x128], 0
mov qword [rsp + 0x130], 0
mov qword [rsp + 0x138], 0
mov qword [rsp + 0x140], 0
mov qword [rsp + 0x148], 0
mov qword [rsp + 0x150], 0
mov qword [rsp + 0x158], 0
mov qword [rsp + 0x160], 0
mov qword [rsp + 0x168], 0
mov qword [rsp + 0x170], 0
mov qword [rsp + 0x178], 0
mov qword [rsp + 0x180], 0
mov qword [rsp + 0x188], 0
mov qword [rsp + 0x190], 0
mov qword [rsp + 0x198], 0
mov qword [rsp + 0x1a0], 0
mov qword [rsp + 0x1a8], 0
mov qword [rsp + 0x1b0], 0
mov qword [rsp + 0x1b8], 0
mov qword [rsp + 0x1c0], 0
mov qword [rsp + 0x1c8], 0
mov qword [rsp + 0x1d0], 0
mov qword [rsp + 0x1d8], 0
call sub.msvcrt.dll_fgets
cmp byte [rsp + 0xe0], 0x23
je 0x22dcb5f50
mov rcx, r12
call sub.msvcrt.dll_fclose
lea rdx, [0x22dda3abf]
mov rcx, r13
call sub.msvcrt.dll_fopen
mov r12, rax
test rax, rax
je 0x22dcb5f19
xor r9d, r9d
xor r10d, r10d
mov edx, 1
mov r8d, 4
lea rcx, [rsp + 0xb0]
mov word [rsp + 0x96], r9w
mov r9, rax
mov word [rsp + 0x94], r10w
mov dword [rsp + 0xb0], 0
mov byte [rsp + 0xb4], 0
mov dword [rsp + 0x9c], 0
call sub.msvcrt.dll_fread
lea rcx, [rsp + 0x96]
mov r9, r12
mov r8d, 2
mov edx, 1
call sub.msvcrt.dll_fread
lea rcx, [rsp + 0x94]
mov r9, r12
mov r8d, 2
mov edx, 1
call sub.msvcrt.dll_fread
lea rcx, [rsp + 0x9c]
mov r9, r12
mov r8d, 4
mov edx, 1
call sub.msvcrt.dll_fread
cmp byte [rsp + 0xb0], 0x72
je 0x22dcb65d7
mov rcx, r12
call sub.msvcrt.dll_fclose
nop
movaps xmm6, xmmword [rsp + 0x3e0]
movaps xmm7, xmmword [rsp + 0x3f0]
movaps xmm8, xmmword [rsp + 0x400]
add rsp, 0x418
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [0x22ddae3b0]
mov dword [rsp + 0xa8], 0
mov dword [rsp + 0xa4], 0
mov dword [rsp + 0xa0], 0
lea rbx, [rax + 0x401]
jmp 0x22dcb5fe3
cmp al, 0x70
jne 0x22dcb5fd3
lea rax, [rsp + 0xa0]
lea r8, [rsp + 0xa8]
mov rcx, r14
mov qword [rsp + 0x20], rax
lea rdx, str.p__d__d_0x_x
lea r9, [rsp + 0xa4]
call fcn.22dad1bf0
mov r8d, dword [rsp + 0xa0]
mov edx, dword [rsp + 0xa4]
mov ecx, dword [rsp + 0xa8]
call fcn.22dca6ba0
mov r8, r12
mov edx, 0x100
mov rcx, r14
call sub.msvcrt.dll_fgets
mov rcx, r12
call sub.msvcrt.dll_feof
test eax, eax
jne 0x22dcb5f10
movzx eax, byte [rsp + 0xe0]
cmp al, 0x66
jne 0x22dcb5f88
lea r15, [rsp + 0x2e0]
lea rsi, [rsp + 0x1e0]
mov rcx, r14
mov dword [rsp + 0xac], 0
mov r9, r15
lea r8, [rsp + 0xac]
lea rdx, str.f__d__s____r_n_s
mov qword [rsp + 0x2e0], 0
mov qword [rsp + 0x2e8], 0
mov qword [rsp + 0x2f0], 0
mov qword [rsp + 0x2f8], 0
mov qword [rsp + 0x300], 0
mov qword [rsp + 0x308], 0
mov qword [rsp + 0x310], 0
mov qword [rsp + 0x318], 0
mov qword [rsp + 0x320], 0
mov qword [rsp + 0x328], 0
mov qword [rsp + 0x330], 0
mov qword [rsp + 0x338], 0
mov qword [rsp + 0x340], 0
mov qword [rsp + 0x348], 0
mov qword [rsp + 0x350], 0
mov qword [rsp + 0x358], 0
mov qword [rsp + 0x360], 0
mov qword [rsp + 0x368], 0
mov qword [rsp + 0x370], 0
mov qword [rsp + 0x378], 0
mov qword [rsp + 0x380], 0
mov qword [rsp + 0x388], 0
mov qword [rsp + 0x390], 0
mov qword [rsp + 0x398], 0
mov qword [rsp + 0x3a0], 0
mov qword [rsp + 0x3a8], 0
mov qword [rsp + 0x3b0], 0
mov qword [rsp + 0x3b8], 0
mov qword [rsp + 0x3c0], 0
mov qword [rsp + 0x3c8], 0
mov qword [rsp + 0x3d0], 0
mov qword [rsp + 0x3d8], 0
mov qword [rsp + 0x1e0], 0
mov qword [rsp + 0x1e8], 0
mov qword [rsp + 0x1f0], 0
mov qword [rsp + 0x1f8], 0
mov qword [rsp + 0x200], 0
mov qword [rsp + 0x208], 0
mov qword [rsp + 0x210], 0
mov qword [rsp + 0x218], 0
mov qword [rsp + 0x220], 0
mov qword [rsp + 0x228], 0
mov qword [rsp + 0x230], 0
mov qword [rsp + 0x238], 0
mov qword [rsp + 0x240], 0
mov qword [rsp + 0x248], 0
mov qword [rsp + 0x250], 0
mov qword [rsp + 0x258], 0
mov qword [rsp + 0x260], 0
mov qword [rsp + 0x268], 0
mov qword [rsp + 0x270], 0
mov qword [rsp + 0x278], 0
mov qword [rsp + 0x280], 0
mov qword [rsp + 0x288], 0
mov qword [rsp + 0x290], 0
mov qword [rsp + 0x298], 0
mov qword [rsp + 0x2a0], 0
mov qword [rsp + 0x2a8], 0
mov qword [rsp + 0x2b0], 0
mov qword [rsp + 0x2b8], 0
mov qword [rsp + 0x2c0], 0
mov qword [rsp + 0x2c8], 0
mov qword [rsp + 0x2d0], 0
mov qword [rsp + 0x2d8], 0
mov qword [rsp + 0x20], rsi
call fcn.22dad1bf0
cmp byte [rsp + 0x2e0], 0x30
je 0x22dcb63f8
mov rax, qword [0x22ddb27e0]
mov rcx, r15
mov rax, qword [rax]
test rax, rax
je 0x22dcb64c0
call rax
mov rdx, rax
test rdx, rdx
je 0x22dcb5fd3
mov rdi, qword [0x22ddae3b0]
xor eax, eax
mov ecx, pe_nt_image_headers64
mov rbp, qword [0x22ddb2d40]
rep stosq qword [rdi], rax
mov rax, qword [0x22ddae3b0]
mov rdi, qword [0x22ddae3b0]
mov qword [rbp], rax
mov rax, rdx
lea rdx, [rdi + 1]
mov edi, 1
jmp 0x22dcb63b9
add rdx, 1
add rax, 1
cmp rdx, rbx
je 0x22dcb64cd
movzx ecx, byte [rax]
mov byte [rdx - 1], cl
test cl, cl
je 0x22dcb64cd
cmp cl, 0xa
jne 0x22dcb63a8
movsxd rcx, edi
add edi, 1
mov byte [rdx - 1], 0
mov qword [rbp + rcx*8], rdx
cmp edi, 0x80
jne 0x22dcb63a8
mov ecx, 0x200
mov r8d, pe_nt_image_headers64
jmp 0x22dcb64d8
mov rcx, r13
mov edi, dword [rsp + 0xac]
call fcn.22dc10a30
mov r8, rsi
lea rcx, str._s__s
mov rdx, rax
call fcn.22db27ca0
mov dword [rsp + 0x20], 0
mov r8d, edi
xor r9d, r9d
mov rdx, rax
lea rcx, [rsp + 0xb0]
call fcn.22db21250
mov esi, dword [rsp + 0xb4]
mov edi, dword [rsp + 0xbc]
test esi, esi
jle 0x22dcb5fd3
test edi, edi
je 0x22dcb5fd3
mov r8d, dword [rsp + 0xb0]
mov rax, qword [0x22ddb2710]
movd xmm1, esi
movdqa xmm7, xmmword [rsp + 0xc0]
mov esi, dword [rsp + 0xb8]
movd xmm8, r8d
cmp byte [rax], 0
movdqa xmm6, xmmword [rsp + 0xd0]
punpckldq xmm8, xmm1
je 0x22dcb66eb
mov rax, qword [0x22ddb26d0]
mov edx, 0x10
xor ecx, ecx
mov dword [rax + 0xc], edi
movq qword [rax], xmm8
movaps xmmword [rax + 0x10], xmm7
movaps xmmword [rax + 0x20], xmm6
mov dword [rax + 8], esi
call fcn.22dca6ba0
jmp 0x22dcb5fd3
call fcn.22db29940
mov rdx, rax
jmp 0x22dcb6362
movsxd r8, edi
lea rcx, [r8*4]
mov qword [rsp + 0x38], r8
call sub.msvcrt.dll_malloc
mov rdx, qword [0x22ddae3b0]
mov r8, qword [rsp + 0x38]
xor r9d, r9d
mov r15, rax
nop dword [rax]
movzx eax, byte [rdx]
mov r10d, 1
lea ecx, [rax - 0x2b]
and ecx, 0xfd
jne 0x22dcb6522
xor r10d, r10d
cmp al, 0x2d
movzx eax, byte [rdx + 1]
setne r10b
add rdx, 1
lea r10d, [r10 + r10 - 1]
lea ecx, [rax - 0x30]
cmp cl, 9
ja 0x22dcb65d0
add rdx, 1
xor ecx, ecx
nop dword [rax]
sub eax, 0x30
lea ecx, [rcx + rcx*4]
add rdx, 1
movsx eax, al
lea ecx, [rax + rcx*2]
movzx eax, byte [rdx - 1]
lea r11d, [rax - 0x30]
cmp r11b, 9
jbe 0x22dcb6538
imul ecx, r10d
mov dword [r15 + r9*4], ecx
add r9, 1
cmp r9, r8
je 0x22dcb6570
mov rdx, qword [rbp + r9*8]
jmp 0x22dcb64f8
mov rcx, r13
mov ebp, dword [rsp + 0xac]
call fcn.22dc10a30
mov r8, rsi
lea rcx, str._s__s
mov rdx, rax
call fcn.22db27ca0
mov dword [rsp + 0x20], edi
mov r9, r15
mov r8d, ebp
lea rcx, [rsp + 0xb0]
mov rdx, rax
call fcn.22db21250
mov rcx, r15
mov esi, dword [rsp + 0xb4]
mov edi, dword [rsp + 0xbc]
call sub.msvcrt.dll_free
jmp 0x22dcb6445
xor ecx, ecx
jmp 0x22dcb655a
cmp byte [rsp + 0xb1], 0x47
jne 0x22dcb5f10
cmp byte [rsp + 0xb2], 0x53
jne 0x22dcb5f10
cmp byte [rsp + 0xb3], 0x20
jne 0x22dcb5f10
mov r8d, dword [rsp + 0x9c]
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0xa4], 0
mov word [rsp + 0x9a], dx
mov word [rsp + 0x98], cx
test r8d, r8d
jle 0x22dcb673a
xor ebx, ebx
lea rbp, [rsp + 0xa4]
lea rdi, [rsp + 0x9a]
lea rsi, [rsp + 0x98]
jmp 0x22dcb667e
mov r8d, dword [rsp + 0xa4]
xor ecx, ecx
call fcn.22dca6ba0
movzx eax, word [rsp + 0x98]
cmp ax, 0xf
jle 0x22dcb66ff
add ebx, 1
cmp dword [rsp + 0x9c], ebx
jle 0x22dcb673a
mov r9, r12
mov r8d, 2
mov edx, 1
mov rcx, rdi
call sub.msvcrt.dll_fread
mov r9, r12
mov edx, 1
mov rcx, rsi
mov r8d, 2
call sub.msvcrt.dll_fread
mov edx, 1
mov r9, r12
mov rcx, rbp
mov r8d, 4
call sub.msvcrt.dll_fread
movzx eax, word [rsp + 0x9a]
movsx edx, word [rsp + 0x98]
test ax, ax
je 0x22dcb664d
mov r8d, dword [rsp + 0xa4]
movsx ecx, ax
call fcn.22dca6ba0
jmp 0x22dcb666e
mov dword [rsp + 0x38], r8d
call fcn.22dca7410
mov r8d, dword [rsp + 0x38]
jmp 0x22dcb6494
mov r13d, 1
jmp 0x22dcb6718
movzx eax, word [rsp + 0x98]
mov r8d, dword [rsp + 0xa4]
mov ecx, r13d
movsx edx, ax
add r13d, 1
call fcn.22dca6ba0
cmp r13d, 0x10
jne 0x22dcb6710
jmp 0x22dcb666e
lea rcx, [rsp + 0xa0]
mov r9, r12
mov r8d, 4
mov edx, 1
mov dword [rsp + 0xa0], 0
call sub.msvcrt.dll_fread
mov eax, dword [rsp + 0xa0]
test eax, eax
jle 0x22dcb5f10
xor ebx, ebx
mov ecx, 0xc
mov r9, r12
mov r8d, 4
mov eax, ebx
mov edx, 1
lea rbp, [rsp + 0x50]
mov dword [rsp + 0xac], 0
lea rdi, [rsp + 0x2e0]
lea rsi, [rsp + 0x2e0]
mov qword [rsp + 0xe0], 0
rep stosd dword [rdi], eax
mov rcx, rsi
mov qword [rsp + 0xe8], 0
call sub.msvcrt.dll_fread
lea rcx, [rsp + 0x2e4]
mov r9, r12
mov r8d, 4
mov edx, 1
call sub.msvcrt.dll_fread
lea rcx, [rsp + 0xac]
mov r9, r12
mov r8d, 4
mov edx, 1
call sub.msvcrt.dll_fread
mov r9, r12
mov edx, 1
mov rcx, r14
mov r8d, 0x10
call sub.msvcrt.dll_fread
lea rcx, [rsp + 0xa8]
mov r9, r12
mov r8d, 4
mov dword [rsp + 0xa8], 0
mov edx, 1
call sub.msvcrt.dll_fread
cmp dword [rsp + 0xa8], 0
jle 0x22dcb6931
mov eax, ebx
mov ecx, 6
mov r9, r12
mov r8d, 4
lea rdi, [rsp + 0x1e0]
mov edx, 1
rep stosd dword [rdi], eax
lea rcx, [rsp + 0x1e8]
mov dword [rsp + 0x1f0], 1
call sub.msvcrt.dll_fread
lea rcx, [rsp + 0x1ec]
mov r9, r12
mov r8d, 4
mov edx, 1
call sub.msvcrt.dll_fread
mov r9, r12
mov r8d, 4
mov edx, 1
lea rcx, [rsp + 0x1f4]
call sub.msvcrt.dll_fread
movsxd rbx, dword [rsp + 0xa8]
mov rcx, rbx
call sub.msvcrt.dll_malloc
mov r9, r12
mov r8, rbx
mov edx, 1
mov rcx, rax
mov qword [rsp + 0x1e0], rax
call sub.msvcrt.dll_fread
mov rax, qword [rsp + 0x1f0]
lea rcx, [rsp + 0x70]
mov rdx, rbp
movdqa xmm2, xmmword [rsp + 0x1e0]
mov qword [rsp + 0x60], rax
movaps xmmword [rsp + 0x50], xmm2
call fcn.22db13cc0
movdqu xmm3, xmmword [rsp + 0x70]
mov eax, dword [rsp + 0x80]
mov rcx, qword [rsp + 0x1e0]
mov dword [rsp + 0x2fc], eax
movups xmmword [rsp + 0x2ec], xmm3
call sub.msvcrt.dll_free
movsxd r13, dword [rsp + 0x2e4]
mov edx, 0x10
mov rcx, r13
call sub.msvcrt.dll_calloc
mov qword [rsp + 0x300], rax
test r13d, r13d
jle 0x22dcb6989
xor edi, edi
mov rcx, rdi
mov r9, r12
mov r8d, 0x10
mov edx, 1
shl rcx, 4
add rcx, qword [rsp + 0x300]
add rdi, 1
call sub.msvcrt.dll_fread
mov ebx, dword [rsp + 0x2e4]
cmp ebx, edi
jg 0x22dcb6955
movsxd r13, ebx
mov edx, 0x28
mov rcx, r13
xor ebx, ebx
xor edi, edi
call sub.msvcrt.dll_calloc
cmp dword [rsp + 0x2e4], 0
mov qword [rsp + 0x308], rax
jle 0x22dcb6a48
mov rcx, qword [rsp + 0x308]
mov r9, r12
mov edx, 1
add edi, 1
mov r8d, 4
add rcx, rbx
call sub.msvcrt.dll_fread
mov rcx, qword [rsp + 0x308]
mov r9, r12
mov r8d, 4
mov edx, 1
add rcx, rbx
add rcx, 4
call sub.msvcrt.dll_fread
mov rcx, qword [rsp + 0x308]
mov r9, r12
mov r8d, 4
mov edx, 1
add rcx, rbx
add rcx, 8
call sub.msvcrt.dll_fread
mov rcx, qword [rsp + 0x308]
mov r9, r12
mov r8d, 4
mov edx, 1
add rcx, rbx
add rbx, 0x28
add rcx, 0xc
call sub.msvcrt.dll_fread
cmp dword [rsp + 0x2e4], edi
jg 0x22dcb69b0
mov ecx, 0xc
mov rdi, rbp
lea r13, [rsp + 0x50]
rep movsd dword [rdi], dword [rsi]
mov rcx, r13
call fcn.22dca6ca0
pxor xmm0, xmm0
comiss xmm0, dword [rsp + 0xe8]
je 0x22dcb5f10
comiss xmm0, dword [rsp + 0xec]
je 0x22dcb5f10
mov eax, dword [rsp + 0x2fc]
lea rdx, [rsp + 0x40]
mov rcx, r13
movdqu xmm4, xmmword [rsp + 0x2ec]
movdqa xmm5, xmmword [rsp + 0xe0]
mov dword [rsp + 0x60], eax
movaps xmmword [rsp + 0x50], xmm4
movaps xmmword [rsp + 0x40], xmm5
call fcn.22dae3bf0
jmp 0x22dcb5f10