Function at 0x180054500
Capabilities:
Read file on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
lea rbp, [rsp - 0x50]
sub rsp, 0x160
mov rax, qword [0x180167010]
xor rax, rsp
mov qword [rbp + 0x40], rax
mov rax, qword [rbp + 0xb0]
xor r10d, r10d
mov rbx, rcx
mov qword [rbp - 8], r9
movzx ecx, r10w
mov qword [rbp - 0x60], rdx
mov dword [rbp - 0x74], ecx
mov r12, r9
mov r9, qword [rbp + 0xb8]
mov r8, rdx
mov r13, qword [rbx + 0x68]
mov esi, r10d
mov r14, qword [rbx]
mov dword [rbp - 0x18], ecx
mov dword [rbp - 0x78], ecx
mov ecx, r10d
mov qword [rbp - 0x70], rax
mov dword [rbp - 0x80], r10d
mov qword [rbp - 0x50], r10
mov qword [rbp - 0x10], r10
mov qword [rbp - 0x58], r10
mov qword [rbp - 0x68], rcx
test r13, r13
je 0x180054dd3
cmp dword [rbx + 0x14], 2
jne 0x180054dd3
test rdx, rdx
je 0x180054dd3
mov edx, dword [r13 + 0x64]
mov r11d, 0xffffffff
test edx, edx
jne 0x1800545b7
mov edx, r10d
cmp rax, r11
jbe 0x1800545b7
mov dword [r13 + 0x64], 1
lea edx, [r10 + 1]
cmp byte [r8], 0x2f
je 0x180054dc5
mov eax, dword [rbx + 0x10]
test edx, edx
je 0x1800545d8
cmp eax, r11d
jne 0x1800545ef
mov dword [rbx + 0x1c], 2
xor eax, eax
jmp 0x180054651
mov edx, r10d
cmp eax, 0xffff
jne 0x1800545ef
mov dword [r13 + 0x64], 1
mov edx, 1
mov rdi, 0xffffffffffffffff
inc rdi
cmp byte [r8 + rdi], cl
jne 0x1800545f6
cmp rdi, 0xffff
ja 0x180054dc5
mov qword [rsp + 0x1b0], r15
mov r15, qword [rbx + 0x20]
test r15, r15
jne 0x180054622
mov r15d, r10d
jmp 0x180054630
lea ecx, [r15 - 1]
mov eax, ecx
and eax, dword [rbx]
sub r15d, eax
and r15d, ecx
mov r8, qword [r13 + 8]
lea rax, [r8 + 0x4a]
add rax, rdi
cmp rax, r11
jb 0x18005466f
mov dword [rbx + 0x1c], 0xf
xor eax, eax
mov r15, qword [rsp + 0x1b0]
mov rcx, qword [rbp + 0x40]
xor rcx, rsp
call fcn.18012be40
add rsp, 0x160
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
test edx, edx
jne 0x180054694
mov eax, r15d
lea rcx, [rdi + 0x239]
lea rcx, [rax + rcx*2]
add rcx, qword [rbx]
add rcx, r8
cmp rcx, r11
jbe 0x180054694
mov dword [r13 + 0x64], 1
test r9, r9
je 0x1800546f6
mov rax, qword [r9]
lea rdx, [rbp - 0x18]
lea rcx, [rbp - 0x40]
mov qword [rbp - 0x18], rax
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__localtime64_s]
test eax, eax
je 0x1800546bc
xor eax, eax
mov dword [rbp - 0x78], eax
mov dword [rbp - 0x18], eax
jmp 0x1800546f6
movzx ecx, word [rbp - 0x38]
mov eax, dword [rbp - 0x40]
shl cx, 6
add cx, word [rbp - 0x3c]
shl cx, 5
sar eax, 1
add cx, ax
movzx eax, word [rbp - 0x2c]
mov dword [rbp - 0x18], ecx
mov ecx, 0x301
shl ax, 4
add ax, word [rbp - 0x30]
add cx, ax
shl cx, 5
add cx, word [rbp - 0x34]
mov dword [rbp - 0x78], ecx
mov r8d, r15d
mov rdx, r14
mov rcx, rbx
call fcn.180053d20
test eax, eax
je 0x180054a29
mov eax, r15d
add r14, rax
mov rax, qword [rbp - 0x70]
mov qword [rbp - 0x48], r14
test rax, rax
je 0x180054731
cmp rax, 3
jbe 0x180054731
mov r8d, 8
mov dword [rbp - 0x74], r8d
jmp 0x180054735
mov r8d, dword [rbp - 0x74]
cmp dword [r13 + 0x64], esi
je 0x1800548a6
mov r13, rax
mov eax, 0xffffffff
cmp r13, rax
jae 0x180054751
cmp r14, rax
jb 0x1800547d0
cmp r14, rax
mov word [rbp + 0x20], 1
lea rcx, [rbp + 0x20]
mov rax, rsi
mov qword [rbp - 0x58], rcx
lea rdx, [rbp + 0x24]
lea rcx, [rbp - 0x48]
cmovb rcx, rsi
test rcx, rcx
je 0x1800547ba
mov rcx, qword [rcx]
lea rdx, [rbp + 0x2c]
mov eax, ecx
mov byte [rbp + 0x24], cl
shr eax, 8
mov byte [rbp + 0x25], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp + 0x26], al
mov eax, ecx
shr eax, 0x18
mov byte [rbp + 0x27], al
shr rcx, 0x20
mov eax, ecx
mov byte [rbp + 0x28], cl
shr eax, 8
mov byte [rbp + 0x29], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [rbp + 0x2a], al
mov eax, 8
mov byte [rbp + 0x2b], cl
mov byte [rbp + 0x22], al
shr ax, 8
mov byte [rbp + 0x23], al
lea rax, [rbp + 0x20]
sub edx, eax
mov qword [rbp - 0x68], rdx
jmp 0x1800547d4
mov rdx, qword [rbp - 0x68]
movzx eax, r8w
mov byte [rbp + 8], r8b
neg ax
mov byte [rbp + 0x1c], dl
movzx eax, r8w
mov dword [rbp], 0x4034b50
sbb cl, cl
mov word [rbp + 5], 0x800
shr ax, 8
lea r8, [rbp]
mov byte [rbp + 9], al
and cl, 0x14
mov eax, dword [rbp - 0x18]
mov r9d, 0x1e
mov byte [rbp + 0xa], al
shr ax, 8
mov byte [rbp + 0xb], al
mov eax, dword [rbp - 0x78]
mov byte [rbp + 0xc], al
shr ax, 8
mov byte [rbp + 0xd], al
movzx eax, di
shr ax, 8
mov byte [rbp + 0x1b], al
movzx eax, dx
shr ax, 8
mov rdx, r14
mov byte [rbp + 4], cl
mov rcx, qword [rbx + 0x60]
mov byte [rbp + 0x1d], al
mov byte [rbp + 7], 8
mov qword [rbp + 0xe], rsi
mov dword [rbp + 0x16], esi
mov byte [rbp + 0x1a], dil
mov word [rbp - 0x7c], di
call qword [rbx + 0x50]
cmp rax, 0x1e
jne 0x180054a29
mov r8, qword [rbp - 0x60]
add r14, rax
mov rcx, qword [rbx + 0x60]
mov rdx, r14
mov r9, rdi
call qword [rbx + 0x50]
cmp rax, rdi
jne 0x180054a29
mov rcx, qword [rbp - 0x68]
lea r8, [rbp + 0x20]
add r14, rdi
mov r9d, ecx
mov edi, ecx
mov rdx, r14
mov rcx, qword [rbx + 0x60]
call qword [rbx + 0x50]
cmp rax, rdi
jne 0x180054a29
jmp 0x180054963
mov eax, 0xffffffff
cmp qword [rbp - 0x10], rax
ja 0x180054db9
cmp r14, rax
ja 0x180054db9
movzx eax, r8w
mov byte [rbp + 8], r8b
neg ax
mov dword [rbp], 0x4034b50
movzx eax, r8w
mov word [rbp + 5], 0x800
sbb cl, cl
mov byte [rbp + 7], 8
shr ax, 8
lea r8, [rbp]
mov byte [rbp + 9], al
and cl, 0x14
mov eax, dword [rbp - 0x18]
mov r9d, 0x1e
mov byte [rbp + 0xa], al
mov rdx, r14
shr ax, 8
mov byte [rbp + 0xb], al
mov eax, dword [rbp - 0x78]
mov byte [rbp + 0xc], al
shr ax, 8
mov byte [rbp + 0xd], al
movzx eax, di
mov word [rbp - 0x7c], ax
shr ax, 8
mov byte [rbp + 4], cl
mov rcx, qword [rbx + 0x60]
mov byte [rbp + 0x1b], al
mov qword [rbp + 0xe], rsi
mov dword [rbp + 0x16], esi
mov byte [rbp + 0x1a], dil
mov word [rbp + 0x1c], si
call qword [rbx + 0x50]
cmp rax, 0x1e
jne 0x180054a29
mov r8, qword [rbp - 0x60]
add r14, rax
mov rcx, qword [rbx + 0x60]
mov rdx, r14
mov r9, rdi
call qword [rbx + 0x50]
cmp rax, rdi
jne 0x180054a29
mov r13, qword [rbp - 0x70]
add r14, rdi
test r13, r13
je 0x180054bc6
mov rcx, qword [rbx + 0x40]
mov edx, 1
mov r8d, 0x10000
call qword [rbx + 0x28]
mov r15, rax
test rax, rax
je 0x180054a78
cmp r13, 3
ja 0x180054a54
mov rcx, r12
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__ftelli64]
test rsi, rsi
js 0x180054a4b
cmp rax, rsi
je 0x1800549c5
xor r8d, r8d
mov rdx, rsi
mov rcx, r12
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__fseeki64]
test eax, eax
jne 0x180054a4b
mov r9, r12
mov edx, 1
mov r8d, 0x10000
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
mov rdi, rax
test rax, rax
je 0x180054a4b
cmp rax, 0x10000
ja 0x180054a35
add rsi, rax
cmp rsi, r13
ja 0x180054a35
mov rcx, qword [rbx + 0x60]
mov r9, rax
mov r8, r15
mov rdx, r14
call qword [rbx + 0x50]
mov rdx, r15
cmp rax, rdi
jne 0x180054a22
mov ecx, dword [rbp - 0x80]
mov r8, rdi
call fcn.18004ef70
mov dword [rbp - 0x80], eax
add r14, rdi
jmp 0x180054997
mov rcx, qword [rbx + 0x40]
call qword [rbx + 0x30]
mov dword [rbx + 0x1c], 0x13
jmp 0x180054647
mov rcx, qword [rbx + 0x40]
mov rdx, r15
call qword [rbx + 0x30]
mov dword [rbx + 0x1c], 0x14
jmp 0x180054647
mov qword [rbp - 0x10], rsi
jmp 0x180054bb8
mov rcx, qword [rbx + 0x40]
mov edx, 1
mov r8d, 0x4df78
call qword [rbx + 0x28]
mov r12, rax
test rax, rax
jne 0x180054a85
mov rcx, qword [rbx + 0x40]
mov rdx, r15
call qword [rbx + 0x30]
mov edi, 0x10
mov dword [rbx + 0x1c], edi
jmp 0x180054647
mov r9d, dword [0x18013ea54]
lea r8, [rbp - 0x40]
xor edi, edi
mov qword [rbp - 0x40], rbx
mov rcx, r12
mov qword [rbp - 0x30], rdi
mov qword [rbp - 0x38], r14
call fcn.180051660
test eax, eax
je 0x180054aca
mov rcx, qword [rbx + 0x40]
mov rdx, r12
call qword [rbx + 0x30]
mov rcx, qword [rbx + 0x40]
mov rdx, r15
call qword [rbx + 0x30]
mov dword [rbx + 0x1c], 0x1b
jmp 0x180054647
mov r13, qword [rbp - 8]
nop
mov rcx, r13
mov r14d, edi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__ftelli64]
test rsi, rsi
js 0x180054b1f
cmp rax, rsi
je 0x180054af9
xor r8d, r8d
mov rdx, rsi
mov rcx, r13
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__fseeki64]
test eax, eax
jne 0x180054b1f
mov r9, r13
mov edx, 1
mov r8d, 0x10000
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
mov rdi, rax
cmp rax, 0x10000
ja 0x180054c47
add rsi, rdi
cmp rsi, qword [rbp - 0x70]
ja 0x180054c47
mov ecx, dword [rbp - 0x80]
mov r8, rdi
mov rdx, r15
call fcn.18004ef70
mov dword [rbp - 0x80], eax
mov rax, qword [rbx + 0x58]
test rax, rax
je 0x180054b57
mov rcx, qword [rbx + 0x60]
call rax
test eax, eax
mov eax, 3
cmovne r14d, eax
mov eax, 4
mov qword [rbp - 8], rdi
test rdi, rdi
lea r8, [rbp - 8]
mov rdx, r15
mov rcx, r12
cmove r14d, eax
mov dword [rsp + 0x28], r14d
call fcn.1800513a0
cmp eax, 1
je 0x180054b99
mov edi, 0
test eax, eax
je 0x180054ad0
mov dword [rbx + 0x1c], 0xc
jmp 0x180054c4e
mov rax, qword [rbx + 0x30]
mov rdx, r12
mov rcx, qword [rbx + 0x40]
call rax
mov rax, qword [rbp - 0x30]
mov r14, qword [rbp - 0x38]
mov qword [rbp - 0x10], rax
mov eax, dword [rbp - 0x80]
mov dword [rbp - 0x80], eax
mov rcx, qword [rbx + 0x40]
mov rdx, r15
mov qword [rbp - 0x50], rsi
call qword [rbx + 0x30]
mov esi, dword [rbp - 0x80]
mov eax, esi
mov r15, qword [rbp - 0x58]
mov rcx, qword [rbp - 0x10]
shr eax, 8
mov byte [rbp - 0x3b], al
mov eax, esi
shr eax, 0x10
mov byte [rbp - 0x3a], al
mov eax, esi
shr eax, 0x18
mov dword [rbp - 0x40], 0x8074b50
mov byte [rbp - 0x3c], sil
mov byte [rbp - 0x39], al
test r15, r15
jne 0x180054c6a
mov r12d, 0xffffffff
cmp rcx, r12
ja 0x180054db9
mov eax, ecx
mov byte [rbp - 0x38], cl
shr eax, 8
lea edi, [r15 + 0x10]
mov byte [rbp - 0x37], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp - 0x36], al
shr ecx, 0x18
mov byte [rbp - 0x35], cl
mov rcx, qword [rbp - 0x50]
mov eax, ecx
mov byte [rbp - 0x34], cl
shr eax, 8
mov byte [rbp - 0x33], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [rbp - 0x31], cl
mov byte [rbp - 0x32], al
jmp 0x180054ce9
mov dword [rbx + 0x1c], 0x14
mov rcx, qword [rbx + 0x40]
mov rdx, r12
mov rax, qword [rbx + 0x30]
call rax
mov rcx, qword [rbx + 0x40]
mov rdx, r15
call qword [rbx + 0x30]
jmp 0x180054647
mov eax, ecx
mov byte [rbp - 0x38], cl
shr eax, 8
mov edi, 0x18
mov byte [rbp - 0x37], al
mov r12d, 0xffffffff
mov eax, ecx
shr eax, 0x10
mov byte [rbp - 0x36], al
mov eax, ecx
shr eax, 0x18
mov byte [rbp - 0x35], al
shr rcx, 0x20
mov eax, ecx
mov byte [rbp - 0x34], cl
shr eax, 8
mov byte [rbp - 0x33], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp - 0x32], al
shr ecx, 0x18
mov byte [rbp - 0x31], cl
mov rcx, qword [rbp - 0x50]
mov eax, ecx
mov byte [rbp - 0x30], cl
shr eax, 8
mov byte [rbp - 0x2f], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp - 0x2e], al
mov eax, ecx
shr eax, 0x18
shr rcx, 0x20
mov byte [rbp - 0x2d], al
mov eax, ecx
shr eax, 8
mov byte [rbp - 0x2b], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp - 0x2c], cl
shr ecx, 0x18
mov byte [rbp - 0x29], cl
mov byte [rbp - 0x2a], al
mov rcx, qword [rbx + 0x60]
lea r8, [rbp - 0x40]
mov r9, rdi
mov rdx, r14
call qword [rbx + 0x50]
cmp rax, rdi
jne 0x180054647
add r14, rdi
test r15, r15
je 0x180054d3b
cmp qword [rbp - 0x48], r12
lea r9, [rbp - 0x48]
mov ecx, 0
lea r8, [rbp - 0x10]
cmovb r9, rcx
lea rdx, [rbp - 0x50]
cmp qword [rbp - 0x50], r12
cmovb r8, rcx
cmovb rdx, rcx
lea rcx, [rbp + 0x20]
call fcn.180053770
jmp 0x180054d3f
mov rax, qword [rbp - 0x68]
mov rcx, qword [rbp - 0x48]
mov edx, 0x808
movzx r8d, word [rbp - 0x7c]
mov r9, r15
mov dword [rsp + 0x78], 0
mov qword [rsp + 0x70], rcx
mov ecx, dword [rbp - 0x78]
mov word [rsp + 0x68], cx
mov ecx, dword [rbp - 0x18]
mov word [rsp + 0x60], cx
mov ecx, dword [rbp - 0x74]
mov word [rsp + 0x58], dx
mov rdx, qword [rbp - 0x60]
mov word [rsp + 0x50], cx
mov rcx, qword [rbp - 0x10]
mov dword [rsp + 0x48], esi
mov qword [rsp + 0x40], rcx
mov rcx, qword [rbp - 0x50]
mov qword [rsp + 0x38], rcx
mov rcx, rbx
mov word [rsp + 0x20], ax
call fcn.180053890
test eax, eax
je 0x180054647
inc dword [rbx + 0x10]
mov eax, 1
mov qword [rbx], r14
jmp 0x180054649
mov dword [rbx + 0x1c], 0x1d
jmp 0x180054647
mov dword [rbx + 0x1c], 0x19
xor eax, eax
jmp 0x180054651
mov edi, 0x18
xor eax, eax
mov dword [rbx + 0x1c], edi
jmp 0x180054651