Function at 0x14002c900
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x458
mov edi, r8d
mov r12, rdx
mov rsi, rcx
call fcn.140001c50
mov r14d, eax
mov rcx, r12
call sub.msvcrt.dll_clearerr
cmp r14d, 1
mov qword [rsp + 0x30], rdi
jne 0x14002c971
mov rcx, rsi
mov rdx, r12
mov r8d, 1
call fcn.14002cf00
mov ebx, eax
lea ebp, [rdi + 1]
mov rcx, r12
call sub.msvcrt.dll_ferror
test eax, eax
je 0x14002ce25
mov rcx, rsi
xor edx, edx
xor r8d, r8d
call fcn.140005ba0
mov ebp, eax
jmp 0x14002ce42
lea edx, [r14 + 0x13]
lea r8, str.too_many_arguments
mov rcx, rsi
call fcn.140006000
add r14d, 0xfffffffe
lea r13, [rsp + 0x38]
mov ebp, edi
nop
mov rcx, rsi
mov edx, ebp
call fcn.140002050
mov rcx, rsi
mov edx, ebp
cmp eax, 3
jne 0x14002ca00
call fcn.140006180
test rax, rax
je 0x14002ca3e
mov rbx, rax
mov rcx, rsi
mov rdx, r13
call fcn.140005610
mov rcx, r13
mov rdx, rbx
call fcn.140005680
mov edx, 1
mov rcx, rax
mov r8, rbx
mov r9, r12
call sub.msvcrt.dll_fread
mov r15, rax
add qword [rsp + 0x48], rax
mov rcx, r13
call fcn.140005700
xor ebx, ebx
test r15, r15
jmp 0x14002ca68
xor r8d, r8d
call fcn.140005fc0
xor ecx, ecx
cmp byte [rax], 0x2a
sete cl
movsx eax, byte [rax + rcx]
add eax, 0xffffffb4
cmp eax, 0x22
ja case.0x14002ca2e.77
lea rcx, [0x14002ce70]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov rcx, rsi
mov rdx, r12
xor r8d, r8d
jmp 0x14002cace
mov rcx, r12
call sub.msvcrt.dll_getc
mov r15d, eax
mov ecx, eax
mov rdx, r12
call sub.msvcrt.dll_ungetc
mov rcx, rsi
lea rdx, [0x1400d8c11]
call fcn.140002fd0
xor ebx, ebx
cmp r15d, 0xffffffff
setne bl
jmp 0x14002cd50
mov rcx, rsi
mov rdx, r13
call fcn.140005610
nop dword [rax + rax]
mov edx, 0x400
mov rcx, r13
call fcn.140005680
mov edx, 1
mov r8d, 0x400
mov rcx, rax
mov r9, r12
call sub.msvcrt.dll_fread
add qword [rsp + 0x48], rax
cmp rax, 0x400
je 0x14002ca80
mov rcx, r13
call fcn.140005700
mov ebx, 1
jmp 0x14002cd50
mov rcx, rsi
mov rdx, r12
mov r8d, 1
call fcn.14002cf00
mov ebx, eax
jmp 0x14002cd50
mov qword [rsp + 0x38], r12
mov dword [rsp + 0x44], 0
call qword [sym.imp.msvcrt.dll_localeconv]
mov rax, qword [rax]
movsx r13d, byte [rax]
mov rdi, qword [sym.imp.msvcrt.dll_isspace]
nop dword [rax + rax]
mov rcx, r12
call sub.msvcrt.dll_getc
mov r15d, eax
mov ecx, eax
call rdi
test eax, eax
jne 0x14002cb00
mov dword [rsp + 0x40], r15d
cmp r15d, 0x2d
mov dword [rsp + 0x2c], r13d
je 0x14002cb2b
xor ebx, ebx
cmp r15d, 0x2b
jne 0x14002cb4c
mov dword [rsp + 0x44], 1
mov byte [rsp + 0x48], r15b
mov rcx, r12
call sub.msvcrt.dll_getc
mov r15d, eax
mov dword [rsp + 0x40], eax
mov ebx, 1
mov r13b, 1
xor edi, edi
cmp r15d, 0x30
jne 0x14002cbb0
mov eax, ebx
lea rdi, [rax + 1]
mov dword [rsp + 0x44], edi
mov byte [rsp + rax + 0x48], 0x30
mov rcx, r12
call sub.msvcrt.dll_getc
mov r15d, eax
mov dword [rsp + 0x40], eax
or eax, 0x20
cmp eax, 0x78
jne 0x14002cbab
or ebx, 2
mov dword [rsp + 0x44], ebx
mov byte [rsp + rdi + 0x48], r15b
mov rcx, r12
call sub.msvcrt.dll_getc
mov r15d, eax
mov dword [rsp + 0x40], eax
xor edi, edi
lea rax, [0x1400d8c12]
mov qword [rsp + 0x20], rax
xor r13d, r13d
jmp 0x14002cbbc
mov edi, 1
lea rax, [0x1400d8c15]
mov qword [rsp + 0x20], rax
mov rbx, r12
test r13b, r13b
je 0x14002cbe0
nop word cs:[rax + rax]
nop
lea eax, [r15 - 0x30]
cmp eax, 9
jbe 0x14002cbed
jmp 0x14002cc29
mov ecx, r15d
call qword [sym.imp.msvcrt.dll_isxdigit]
test eax, eax
je 0x14002cc29
movsxd rax, dword [rsp + 0x44]
cmp rax, 0xc8
jge 0x14002cc24
lea ecx, [rax + 1]
mov dword [rsp + 0x44], ecx
mov byte [rsp + rax + 0x48], r15b
mov rbx, qword [rsp + 0x38]
mov rcx, rbx
call sub.msvcrt.dll_getc
mov r15d, eax
mov dword [rsp + 0x40], eax
add edi, 1
test r13b, r13b
je 0x14002cbe0
jmp 0x14002cbd0
mov byte [rsp + 0x48], 0
cmp r15d, dword [rsp + 0x2c]
je 0x14002cd6a
cmp r15d, 0x2e
je 0x14002cd6a
test edi, edi
lea r13, [rsp + 0x38]
jle 0x14002cd19
mov rcx, qword [rsp + 0x20]
movsx eax, byte [rcx]
cmp r15d, eax
je 0x14002cc65
movsx eax, byte [rcx + 1]
cmp r15d, eax
jne 0x14002cd19
movsxd rax, dword [rsp + 0x44]
cmp rax, 0xc7
jg 0x14002ce02
lea ecx, [rax + 1]
mov dword [rsp + 0x44], ecx
mov byte [rsp + rax + 0x48], r15b
mov rbx, qword [rsp + 0x38]
mov rcx, rbx
call sub.msvcrt.dll_getc
mov r15d, eax
mov dword [rsp + 0x40], eax
cmp eax, 0x2d
je 0x14002cca1
cmp r15d, 0x2b
jne 0x14002ccd2
movsxd rax, dword [rsp + 0x44]
cmp rax, 0xc8
jge 0x14002ce1b
lea ecx, [rax + 1]
mov dword [rsp + 0x44], ecx
mov byte [rsp + rax + 0x48], r15b
mov rbx, qword [rsp + 0x38]
mov rcx, rbx
call sub.msvcrt.dll_getc
mov r15d, eax
mov dword [rsp + 0x40], eax
lea eax, [r15 - 0x30]
cmp eax, 9
ja 0x14002cd19
nop dword [rax + rax]
mov eax, dword [rsp + 0x44]
cmp eax, 0xc7
jg 0x14002ce02
lea ecx, [rax + 1]
mov dword [rsp + 0x44], ecx
cdqe
mov byte [rsp + rax + 0x48], r15b
mov rbx, qword [rsp + 0x38]
mov rcx, rbx
call sub.msvcrt.dll_getc
mov r15d, eax
mov dword [rsp + 0x40], eax
add eax, 0xffffffd0
cmp eax, 0xa
jb 0x14002cce0
mov ecx, r15d
mov rdx, rbx
call sub.msvcrt.dll_ungetc
movsxd rax, dword [rsp + 0x44]
mov byte [rsp + rax + 0x48], 0
mov rcx, rsi
lea rdx, [rsp + 0x48]
call fcn.140002710
mov ebx, 1
test rax, rax
je 0x14002ce0c
nop dword [rax]
add ebp, 1
add r14d, 0xffffffff
jae 0x14002c94d
test ebx, ebx
jne 0x14002c990
jmp 0x14002c94d
movsxd rax, dword [rsp + 0x44]
cmp rax, 0xc8
jge 0x14002cdf8
lea ecx, [rax + 1]
mov dword [rsp + 0x44], ecx
mov byte [rsp + rax + 0x48], r15b
mov rbx, qword [rsp + 0x38]
mov rcx, rbx
call sub.msvcrt.dll_getc
mov r15d, eax
mov dword [rsp + 0x40], eax
test r13b, r13b
je 0x14002cdb0
lea eax, [r15 - 0x30]
cmp eax, 9
jbe 0x14002cdc1
jmp 0x14002cc3e
mov ecx, r15d
call qword [sym.imp.msvcrt.dll_isxdigit]
test eax, eax
je 0x14002cc3e
movsxd rax, dword [rsp + 0x44]
cmp rax, 0xc8
jge 0x14002cdf8
lea ecx, [rax + 1]
mov dword [rsp + 0x44], ecx
mov byte [rsp + rax + 0x48], r15b
mov rbx, qword [rsp + 0x38]
mov rcx, rbx
call sub.msvcrt.dll_getc
mov r15d, eax
mov dword [rsp + 0x40], eax
add edi, 1
test r13b, r13b
je 0x14002cdb0
jmp 0x14002cda0
mov byte [rsp + 0x48], 0
jmp 0x14002cc3e
mov byte [rsp + 0x48], 0
jmp 0x14002cd19
mov rcx, rsi
call fcn.140002f10
xor ebx, ebx
jmp 0x14002cd50
mov byte [rsp + 0x48], 0
jmp 0x14002ccd2
test ebx, ebx
jne 0x14002ce3e
mov rcx, rsi
mov edx, 0xfffffffe
call fcn.140001c70
mov rcx, rsi
call fcn.140002f10
sub ebp, dword [rsp + 0x30]
mov eax, ebp
add rsp, 0x458
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str.invalid_format
mov rcx, rsi
mov edx, ebp
call fcn.140005760
mov ebp, eax
jmp 0x14002ce42