Function at 0x435a4c
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x48
movsxd rax, ecx
mov r15d, 0xfffffffe
mov ebx, r8d
cmp eax, r15d
mov dword [rsp + 0x38], r8d
jne 0x435a94
call fcn.0042ec38
xor edi, edi
mov dword [rax], edi
call fcn.0042ec10
mov dword [rax], 9
jmp 0x43613f
xor edi, edi
cmp eax, edi
jl 0x436119
cmp eax, dword [0x00452fe8]
jae 0x436119
mov sil, al
mov r14, rax
lea r8, [0x00400000]
sar r14, 5
and esi, 0x1f
mov rcx, qword [r8 + r14*8 + 0x53000]
imul rsi, rsi, 0x38
mov al, byte [rcx + rsi + 8]
test al, 1
je 0x436119
cmp ebx, edi
mov ebp, edi
je 0x436115
test al, 2
jne 0x436115
cmp rdx, rdi
jne 0x435b04
call fcn.0042ec38
mov dword [rax], edi
call fcn.0042ec10
mov dword [rax], 0x16
jmp 0x43612b
mov r12d, dword [rcx + rsi + 0xc]
mov ecx, 4
and r12d, 3
mov eax, r12d
mov dword [rsp + 0x34], r12d
dec eax
je 0x435b32
dec eax
jne 0x435b2d
mov eax, ebx
not eax
test al, 1
je 0x435aed
and ebx, 0xfffffffe
mov r13, rdx
jmp 0x435b72
mov eax, ebx
not eax
test al, 1
je 0x435aed
shr ebx, 1
cmp ebx, ecx
cmovb ebx, ecx
mov ecx, ebx
call fcn.0042e220
cmp rax, rdi
mov r13, rax
jne 0x435b6b
call fcn.0042ec10
mov dword [rax], 0xc
call fcn.0042ec38
mov dword [rax], 8
jmp 0x43613f
lea r8, [0x00400000]
mov rax, qword [r8 + r14*8 + 0x53000]
mov rdx, r13
test byte [rax + rsi + 8], 0x48
je 0x435c29
mov cl, byte [rax + rsi + 9]
cmp cl, 0xa
je 0x435c29
cmp ebx, edi
je 0x435c29
mov byte [r13], cl
mov rax, qword [r8 + r14*8 + 0x53000]
mov r9d, 0xffffffff
add ebx, r9d
cmp r12d, edi
lea rdx, [r13 + 1]
mov byte [rax + rsi + 9], 0xa
mov ebp, 1
je 0x435c29
mov rax, qword [r8 + r14*8 + 0x53000]
mov cl, byte [rax + rsi + 0xa]
cmp cl, 0xa
je 0x435c29
cmp ebx, edi
je 0x435c29
mov byte [rdx], cl
mov rax, qword [r8 + r14*8 + 0x53000]
add ebx, r9d
inc rdx
cmp r12d, 1
mov ebp, 2
mov byte [rax + rsi + 0xa], 0xa
jne 0x435c29
mov rax, qword [r8 + r14*8 + 0x53000]
mov cl, byte [rax + rsi + 0xb]
cmp cl, 0xa
je 0x435c29
cmp ebx, edi
je 0x435c29
mov byte [rdx], cl
mov rax, qword [r8 + r14*8 + 0x53000]
inc rdx
lea ebp, [r12 + 2]
add ebx, r9d
mov byte [rax + rsi + 0xb], 0xa
mov rcx, qword [r8 + r14*8 + 0x53000]
lea r9, [rsp + 0x30]
mov r8d, ebx
mov rcx, qword [rcx + rsi]
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, edi
je 0x4360b9
movsxd rdx, dword [rsp + 0x30]
cmp edx, edi
jl 0x4360b9
mov eax, ebx
cmp rdx, rax
ja 0x4360b9
lea r8, [0x00400000]
add ebp, edx
mov rax, qword [r8 + r14*8 + 0x53000]
test byte [rax + rsi + 8], 0x80
je 0x4360f3
cmp r12d, 2
je 0x435f16
cmp edx, edi
je 0x435ca0
cmp byte [r13], 0xa
jne 0x435ca0
or byte [rax + rsi + 8], 4
jmp 0x435ca5
and byte [rax + rsi + 8], 0xfb
movsxd rax, ebp
mov rbx, r13
mov r12, r13
lea rbp, [rax + r13]
cmp r13, rbp
jae 0x435dea
mov al, byte [r12]
cmp al, 0x1a
je 0x435dcb
cmp al, 0xd
je 0x435cd8
mov byte [rbx], al
inc rbx
inc r12
jmp 0x435dc0
lea rax, [rbp - 1]
cmp r12, rax
jae 0x435cfc
lea rax, [r12 + 1]
cmp byte [rax], 0xa
jne 0x435cf4
add r12, 2
jmp 0x435d84
mov r12, rax
jmp 0x435dba
mov rcx, qword [r8 + r14*8 + 0x53000]
lea r9, [rsp + 0x30]
lea rdx, [rsp + 0xa0]
mov rcx, qword [rcx + rsi]
mov r8d, 1
inc r12
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, edi
jne 0x435d37
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, edi
jne 0x435db3
cmp dword [rsp + 0x30], edi
je 0x435db3
lea r8, [0x00400000]
mov rax, qword [r8 + r14*8 + 0x53000]
test byte [rax + rsi + 8], 0x48
je 0x435d75
cmp byte [rsp + 0xa0], 0xa
je 0x435d84
mov byte [rbx], 0xd
mov rcx, qword [r8 + r14*8 + 0x53000]
mov al, byte [rsp + 0xa0]
mov byte [rcx + rsi + 9], al
jmp 0x435dbd
cmp rbx, r13
jne 0x435d89
cmp byte [rsp + 0xa0], 0xa
jne 0x435d89
mov byte [rbx], 0xa
jmp 0x435dbd
mov ecx, dword [rsp + 0x90]
mov rdx, 0xffffffffffffffff
lea r8d, [rdx + 2]
call fcn.00438340
cmp byte [rsp + 0xa0], 0xa
lea r8, [0x00400000]
je 0x435dc0
jmp 0x435dba
lea r8, [0x00400000]
mov byte [rbx], 0xd
inc rbx
cmp r12, rbp
jb 0x435cbb
jmp 0x435dea
mov rax, qword [r8 + r14*8 + 0x53000]
test byte [rax + rsi + 8], 0x40
jne 0x435de1
or byte [rax + rsi + 8], 2
jmp 0x435dea
mov al, byte [r12]
mov byte [rbx], al
inc rbx
mov ebp, ebx
sub ebp, r13d
cmp dword [rsp + 0x34], 1
jne 0x4360f3
cmp ebp, edi
je 0x4360f3
dec rbx
test byte [rbx], 0x80
jne 0x435e12
inc rbx
jmp 0x435ec4
mov edx, 1
jmp 0x435e28
cmp edx, 4
jg 0x435e35
cmp rbx, r13
jb 0x435e35
dec rbx
inc edx
movzx eax, byte [rbx]
cmp byte [rax + r8 + 0x3f200], dil
je 0x435e19
movzx ecx, byte [rbx]
movsx eax, byte [rcx + r8 + 0x3f200]
cmp eax, edi
jne 0x435e55
call fcn.0042ec10
mov dword [rax], 0x2a
jmp 0x4360ed
inc eax
cmp eax, edx
jne 0x435e63
movsxd rax, edx
add rbx, rax
jmp 0x435ec4
mov rax, qword [r8 + r14*8 + 0x53000]
test byte [rax + rsi + 8], 0x48
je 0x435ead
inc rbx
cmp edx, 2
mov byte [rax + rsi + 9], cl
jl 0x435e8f
mov al, byte [rbx]
mov rcx, qword [r8 + r14*8 + 0x53000]
inc rbx
mov byte [rcx + rsi + 0xa], al
cmp edx, 3
jne 0x435ea5
mov al, byte [rbx]
mov rcx, qword [r8 + r14*8 + 0x53000]
inc rbx
mov byte [rcx + rsi + 0xb], al
movsxd rax, edx
sub rbx, rax
jmp 0x435ec4
mov ecx, dword [rsp + 0x90]
neg edx
mov r8d, 1
movsxd rdx, edx
call fcn.00438340
mov eax, dword [rsp + 0x38]
mov rsi, qword [rsp + 0x98]
sub ebx, r13d
shr eax, 1
mov r9d, ebx
mov r8, r13
mov dword [rsp + 0x28], eax
xor edx, edx
mov ecx, 0xfde9
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp eax, edi
mov ebp, eax
jne 0x435f0f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.0042ec60
mov r15d, 0xffffffff
jmp 0x4360fb
add ebp, ebp
jmp 0x4360fb
cmp edx, edi
je 0x435f29
cmp word [r13], 0xa
jne 0x435f29
or byte [rax + rsi + 8], 4
jmp 0x435f2e
and byte [rax + rsi + 8], 0xfb
movsxd rax, ebp
mov rbx, r13
mov r12, r13
lea rbp, [rax + r13]
cmp r13, rbp
jae 0x4360b2
movzx eax, word [r12]
cmp ax, 0x1a
je 0x436090
cmp ax, 0xd
je 0x435f69
mov word [rbx], ax
add rbx, 2
add r12, 2
jmp 0x436085
lea rax, [rbp - 2]
cmp r12, rax
jae 0x435f8e
lea rax, [r12 + 2]
cmp word [rax], 0xa
jne 0x435f86
add r12, 4
jmp 0x436043
mov r12, rax
jmp 0x43607c
mov rcx, qword [r8 + r14*8 + 0x53000]
lea r9, [rsp + 0x30]
lea rdx, [rsp + 0xa8]
mov rcx, qword [rcx + rsi]
mov r8d, 2
add r12, 2
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, edi
jne 0x435fce
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, edi
jne 0x436075
cmp dword [rsp + 0x30], edi
je 0x436075
lea r8, [0x00400000]
mov rax, qword [r8 + r14*8 + 0x53000]
test byte [rax + rsi + 8], 0x48
je 0x436033
cmp word [rsp + 0xa8], 0xa
je 0x436043
mov word [rbx], 0xd
mov al, byte [rsp + 0xa8]
mov rcx, qword [r8 + r14*8 + 0x53000]
mov byte [rcx + rsi + 9], al
mov al, byte [rsp + 0xa9]
mov rcx, qword [r8 + r14*8 + 0x53000]
mov byte [rcx + rsi + 0xa], al
mov rax, qword [r8 + r14*8 + 0x53000]
mov byte [rax + rsi + 0xb], 0xa
jmp 0x436081
cmp rbx, r13
jne 0x43604a
cmp word [rsp + 0xa8], 0xa
jne 0x43604a
mov word [rbx], 0xa
jmp 0x436081
mov ecx, dword [rsp + 0x90]
mov rdx, 0xfffffffffffffffe
lea r8d, [rdx + 3]
call fcn.00438340
cmp word [rsp + 0xa8], 0xa
lea r8, [0x00400000]
je 0x436085
jmp 0x43607c
lea r8, [0x00400000]
mov word [rbx], 0xd
add rbx, 2
cmp r12, rbp
jb 0x435f44
jmp 0x4360b2
mov rax, qword [r8 + r14*8 + 0x53000]
test byte [rax + rsi + 8], 0x40
jne 0x4360a6
or byte [rax + rsi + 8], 2
jmp 0x4360b2
movzx eax, word [r12]
mov word [rbx], ax
add rbx, 2
mov ebp, ebx
sub ebp, r13d
jmp 0x4360f3
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x4360dc
call fcn.0042ec10
mov dword [rax], 9
call fcn.0042ec38
mov dword [rax], 5
jmp 0x4360ed
cmp eax, 0x6d
jne 0x4360e6
mov r15d, edi
jmp 0x4360f3
mov ecx, eax
call fcn.0042ec60
mov r15d, 0xffffffff
mov rsi, qword [rsp + 0x98]
cmp r13, rsi
je 0x436108
mov rcx, r13
call fcn.0042e1dc
cmp r15d, 0xfffffffe
cmove r15d, ebp
mov eax, r15d
jmp 0x436144
xor eax, eax
jmp 0x436144
call fcn.0042ec38
mov dword [rax], edi
call fcn.0042ec10
mov dword [rax], 9
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rdi
call fcn.004337e8
mov eax, 0xffffffff
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret