Function at 0x429080
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
sub rsp, 0x88
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x68], rdi
movsxd rax, ecx
mov rdi, 0xfffffffffffffffe
mov qword [rsp + 0x50], r14
mov ebx, r8d
cmp eax, edi
mov dword [rsp + 0x3c], r8d
jne 0x4290d6
call fcn.0041ab00
xor r14d, r14d
mov dword [rax], r14d
call fcn.0041aad0
mov dword [rax], 9
lea eax, [rdi + 1]
jmp 0x429229
cmp eax, dword [0x00466908]
jb 0x429111
call fcn.0041ab00
xor r14d, r14d
mov dword [rax], r14d
call fcn.0041aad0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov dword [rax], 9
mov qword [rsp + 0x20], r14
call fcn.0041e5c0
lea eax, [r14 - 1]
jmp 0x429229
mov qword [rsp + 0x78], rbp
mov bpl, al
mov qword [rsp + 0x58], r13
mov r13, rax
and ebp, 0x1f
lea r8, [0x00400000]
sar r13, 5
shl rbp, 6
mov rcx, qword [r8 + r13*8 + 0x66920]
movzx eax, byte [rcx + rbp + 8]
test al, 1
jne 0x429177
call fcn.0041ab00
xor r14d, r14d
mov dword [rax], r14d
call fcn.0041aad0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov dword [rax], 9
mov qword [rsp + 0x20], r14
call fcn.0041e5c0
lea eax, [r14 - 1]
jmp 0x42921f
xor r14d, r14d
test ebx, ebx
mov qword [rsp + 0x70], rsi
mov esi, r14d
je 0x4298ee
test al, 2
jne 0x4298ee
test rdx, rdx
jne 0x4291c4
call fcn.0041ab00
mov dword [rax], r14d
call fcn.0041aad0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov dword [rax], 0x16
mov qword [rsp + 0x20], r14
call fcn.0041e5c0
lea eax, [r14 - 1]
jmp 0x42921a
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x48], r15
movsx r15d, byte [rcx + rbp + 0x38]
mov ecx, r15d
dec ecx
je 0x429248
dec ecx
jne 0x429243
and ebx, 0xfffffffe
jne 0x429243
call fcn.0041ab00
mov dword [rax], r14d
call fcn.0041aad0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov dword [rax], 0x16
mov qword [rsp + 0x20], r14
call fcn.0041e5c0
mov eax, 0xffffffff
mov r12, qword [rsp + 0x60]
mov r15, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov r13, qword [rsp + 0x58]
mov r14, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x80]
add rsp, 0x88
ret
mov r12, rdx
jmp 0x42928d
shr ebx, 1
cmp ebx, 4
jae 0x429256
mov ebx, 4
jmp 0x42925a
test ebx, ebx
je 0x4291e4
mov ecx, ebx
call fcn.0041d6b0
test rax, rax
mov r12, rax
jne 0x429286
call fcn.0041aad0
mov dword [rax], reloc.OLEAUT32.dll_VariantTimeToDosDateTime
call fcn.0041ab00
mov dword [rax], 8
lea eax, [r12 - 1]
jmp 0x429210
lea r8, [0x00400000]
mov rax, qword [r8 + r13*8 + 0x66920]
mov rdx, r12
test byte [rax + rbp + 8], 0x48
je 0x429342
movzx ecx, byte [rax + rbp + 9]
cmp cl, 0xa
je 0x429342
test ebx, ebx
je 0x429342
mov byte [r12], cl
mov rax, qword [r8 + r13*8 + 0x66920]
add ebx, 0xffffffff
test r15b, r15b
lea rdx, [r12 + 1]
mov esi, 1
mov byte [rax + rbp + 9], 0xa
je 0x429342
mov rax, qword [r8 + r13*8 + 0x66920]
movzx ecx, byte [rax + rbp + 0x39]
cmp cl, 0xa
je 0x429342
test ebx, ebx
je 0x429342
mov byte [rdx], cl
mov rax, qword [r8 + r13*8 + 0x66920]
inc rdx
add ebx, 0xffffffff
cmp r15b, 1
mov esi, 2
mov byte [rax + rbp + 0x39], 0xa
jne 0x429342
mov rax, qword [r8 + r13*8 + 0x66920]
movzx ecx, byte [rax + rbp + 0x3a]
cmp cl, 0xa
je 0x429342
test ebx, ebx
je 0x429342
mov byte [rdx], cl
mov rax, qword [r8 + r13*8 + 0x66920]
inc rdx
mov esi, 3
add ebx, 0xffffffff
mov byte [rax + rbp + 0x3a], 0xa
mov rcx, qword [r8 + r13*8 + 0x66920]
lea r9, [rsp + 0x38]
mov r8d, ebx
mov rcx, qword [rcx + rbp]
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4293c6
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x429398
call fcn.0041aad0
mov dword [rax], 9
call fcn.0041ab00
mov rbp, qword [rsp + 0x98]
mov dword [rax], 5
mov edi, 0xffffffff
jmp 0x4298d4
cmp eax, 0x6d
jne 0x4293ad
mov rbp, qword [rsp + 0x98]
mov edi, r14d
jmp 0x4298d4
mov ecx, eax
call fcn.0041ab30
mov rbp, qword [rsp + 0x98]
mov edi, 0xffffffff
jmp 0x4298d4
mov ecx, dword [rsp + 0x38]
lea r8, [0x00400000]
mov rax, qword [r8 + r13*8 + 0x66920]
add esi, ecx
test byte [rax + rbp + 8], 0x80
je 0x4298cc
cmp r15b, 2
je 0x4296c1
test ecx, ecx
je 0x429402
cmp byte [r12], 0xa
jne 0x429402
or byte [rax + rbp + 8], 4
jmp 0x429407
and byte [rax + rbp + 8], 0xfb
movsxd rax, esi
mov rbx, r12
mov rdi, r12
lea rsi, [rax + r12]
cmp r12, rsi
jae 0x42956e
nop
movzx eax, byte [rdi]
cmp al, 0x1a
je 0x42954f
cmp al, 0xd
je 0x42943c
mov byte [rbx], al
inc rbx
inc rdi
jmp 0x429544
lea rax, [rsi - 1]
cmp rdi, rax
jae 0x42946c
cmp byte [rdi + 1], 0xa
lea rax, [rdi + 1]
jne 0x42945e
add rdi, 2
mov byte [rbx], 0xa
inc rbx
jmp 0x429544
mov byte [rbx], 0xd
inc rbx
mov rdi, rax
jmp 0x429544
mov rcx, qword [r8 + r13*8 + 0x66920]
lea r9, [rsp + 0x38]
lea rdx, [rsp + 0x30]
mov rcx, qword [rcx + rbp]
mov r8d, 1
inc rdi
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4294a8
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x42952e
cmp dword [rsp + 0x38], r14d
je 0x42952e
lea r8, [0x00400000]
mov rax, qword [r8 + r13*8 + 0x66920]
test byte [rax + rbp + 8], 0x48
je 0x4294ed
cmp byte [rsp + 0x30], 0xa
jne 0x4294d4
mov byte [rbx], 0xa
inc rbx
jmp 0x429544
mov byte [rbx], 0xd
mov rcx, qword [r8 + r13*8 + 0x66920]
movzx eax, byte [rsp + 0x30]
mov byte [rcx + rbp + 9], al
inc rbx
jmp 0x429544
cmp rbx, r12
jne 0x429501
cmp byte [rsp + 0x30], 0xa
jne 0x429501
mov byte [rbx], 0xa
inc rbx
jmp 0x429544
mov ecx, dword [rsp + 0x90]
mov rdx, 0xffffffffffffffff
lea r8d, [rdx + 2]
call fcn.0042c3e0
cmp byte [rsp + 0x30], 0xa
je 0x42953d
mov byte [rbx], 0xd
inc rbx
lea r8, [0x00400000]
jmp 0x429544
mov byte [rbx], 0xd
inc rbx
lea r8, [0x00400000]
jmp 0x429544
lea r8, [0x00400000]
cmp rdi, rsi
jb 0x429420
jmp 0x42956e
mov rax, qword [r8 + r13*8 + 0x66920]
test byte [rax + rbp + 8], 0x40
jne 0x429565
or byte [rax + rbp + 8], 2
jmp 0x42956e
movzx eax, byte [rdi]
inc rbx
mov byte [rbx - 1], al
mov esi, ebx
sub esi, r12d
cmp r15b, 1
jne 0x4298aa
test esi, esi
je 0x4298bb
mov al, byte [rbx - 1]
dec rbx
test al, al
js 0x429597
inc rbx
jmp 0x42966b
movzx eax, al
mov edx, 1
cmp byte [rax + r8 + 0x61fb0], r14b
jne 0x4295cd
nop
nop
cmp edx, 4
jg 0x4295cd
cmp rbx, r12
jb 0x4295cd
movzx eax, byte [rbx - 1]
dec rbx
inc edx
cmp byte [rax + r8 + 0x61fb0], r14b
je 0x4295b0
movzx ecx, byte [rbx]
movsx eax, byte [rcx + r8 + 0x61fb0]
test eax, eax
jne 0x4295fa
call fcn.0041aad0
mov rbp, qword [rsp + 0x98]
mov edi, 0xffffffff
mov dword [rax], 0x2a
jmp 0x4298d4
inc eax
cmp eax, edx
jne 0x429608
movsxd rax, edx
add rbx, rax
jmp 0x42966b
mov rax, qword [r8 + r13*8 + 0x66920]
test byte [rax + rbp + 8], 0x48
je 0x429654
inc rbx
cmp edx, 2
mov byte [rax + rbp + 9], cl
jl 0x429635
movzx eax, byte [rbx]
mov rcx, qword [r8 + r13*8 + 0x66920]
inc rbx
mov byte [rcx + rbp + 0x39], al
cmp edx, 3
jne 0x42964c
movzx eax, byte [rbx]
mov rcx, qword [r8 + r13*8 + 0x66920]
inc rbx
mov byte [rcx + rbp + 0x3a], al
movsxd rax, edx
sub rbx, rax
jmp 0x42966b
mov ecx, dword [rsp + 0x90]
neg edx
mov r8d, 1
movsxd rdx, edx
call fcn.0042c3e0
mov eax, dword [rsp + 0x3c]
mov rbp, qword [rsp + 0x98]
sub ebx, r12d
shr eax, 1
mov r9d, ebx
mov r8, r12
mov dword [rsp + 0x28], eax
xor edx, edx
mov ecx, 0xfde9
mov qword [rsp + 0x20], rbp
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
mov esi, eax
jne 0x4296b3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.0041ab30
lea edi, [rsi - 1]
jmp 0x4298d4
add esi, esi
mov rdi, 0xfffffffffffffffe
jmp 0x4298d4
test ecx, ecx
je 0x4296d4
cmp word [r12], 0xa
jne 0x4296d4
or byte [rax + rbp + 8], 4
jmp 0x4296d9
and byte [rax + rbp + 8], 0xfb
movsxd rax, esi
mov rbx, r12
mov rdi, r12
lea rsi, [rax + r12]
cmp r12, rsi
jae 0x429894
mov r15, 0xfffffffffffffffe
nop
nop
nop
movzx eax, word [rdi]
cmp ax, 0x1a
je 0x429873
cmp ax, 0xd
je 0x429723
mov word [rbx], ax
add rbx, 2
add rdi, 2
jmp 0x429868
lea rax, [rsi - 2]
cmp rdi, rax
jae 0x42975a
cmp word [rdi + 2], 0xa
lea rax, [rdi + 2]
jne 0x429749
add rdi, 4
mov word [rbx], 0xa
add rbx, 2
jmp 0x429868
mov word [rbx], SafeArrayGetDim
add rbx, 2
mov rdi, rax
jmp 0x429868
mov rcx, qword [r8 + r13*8 + 0x66920]
lea r9, [rsp + 0x38]
lea rdx, [rsp + 0x34]
mov rcx, qword [rcx + rbp]
mov r8d, 2
add rdi, 2
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x429797
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x42984f
cmp dword [rsp + 0x38], r14d
je 0x42984f
lea r8, [0x00400000]
mov rax, qword [r8 + r13*8 + 0x66920]
test byte [rax + rbp + 8], 0x48
je 0x429808
cmp word [rsp + 0x34], 0xa
jne 0x4297ce
mov word [rbx], 0xa
add rbx, 2
jmp 0x429868
mov word [rbx], SafeArrayGetDim
movzx eax, byte [rsp + 0x34]
mov rcx, qword [r8 + r13*8 + 0x66920]
mov byte [rcx + rbp + 9], al
movzx eax, byte [rsp + 0x35]
mov rcx, qword [r8 + r13*8 + 0x66920]
mov byte [rcx + rbp + 0x39], al
mov rax, qword [r8 + r13*8 + 0x66920]
add rbx, 2
mov byte [rax + rbp + 0x3a], 0xa
jmp 0x429868
cmp rbx, r12
jne 0x429820
cmp word [rsp + 0x34], 0xa
jne 0x429820
mov word [rbx], 0xa
add rbx, 2
jmp 0x429868
mov ecx, dword [rsp + 0x90]
mov r8d, 1
mov rdx, r15
call fcn.0042c3e0
cmp word [rsp + 0x34], 0xa
je 0x429861
mov word [rbx], SafeArrayGetDim
add rbx, 2
lea r8, [0x00400000]
jmp 0x429868
mov word [rbx], SafeArrayGetDim
add rbx, 2
lea r8, [0x00400000]
jmp 0x429868
lea r8, [0x00400000]
cmp rdi, rsi
jb 0x429700
jmp 0x429894
mov rax, qword [r8 + r13*8 + 0x66920]
test byte [rax + rbp + 8], 0x40
jne 0x429889
or byte [rax + rbp + 8], 2
jmp 0x429894
movzx eax, word [rdi]
add rbx, 2
mov word [rbx - 2], ax
mov rbp, qword [rsp + 0x98]
mov esi, ebx
mov rdi, 0xfffffffffffffffe
sub esi, r12d
jmp 0x4298d4
mov rbp, qword [rsp + 0x98]
mov rdi, 0xfffffffffffffffe
jmp 0x4298d4
mov rbp, qword [rsp + 0x98]
mov rdi, 0xfffffffffffffffe
jmp 0x4298d4
mov rbp, qword [rsp + 0x98]
cmp r12, rbp
je 0x4298e1
mov rcx, r12
call fcn.00419090
cmp edi, 0xfffffffe
cmove edi, esi
mov eax, edi
jmp 0x429210
xor eax, eax
jmp 0x42921a