Function at 0x1400b8180
Capabilities:
Read file on windows

Disassembly:
push rbx
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x48
movzx eax, byte [rdx + 0xc]
mov r13, r8
mov qword [rsp + 0x90], r8
add eax, 0x12
mov r15, rdx
xor r8d, r8d
movsxd rdx, eax
mov ebx, r9d
mov r14, rcx
call fcn.1400fe870
cmp byte [r15 + 0xd], 0
je 0x1400b81fb
movzx r8d, byte [r15 + 0x13]
movzx ecx, byte [r15 + 0x12]
mov eax, InitCommonControls
cmp r8d, 0xf
cmove r8d, eax
movzx eax, byte [r15 + 0x11]
shl ecx, 8
add eax, ecx
mov rcx, r14
imul eax, r8d
mov r8d, 1
cdq
and edx, 7
add eax, edx
sar eax, 3
movsxd rdx, eax
call fcn.1400fe870
movsxd rcx, dword [r15]
mov rdi, r13
mov eax, ecx
imul eax, ebx
add eax, 0x1f
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
mov r12d, eax
shl r12d, 2
test byte [r15 + 0x1d], 0x20
mov dword [rsp + 0x98], r12d
je 0x1400b8243
mov eax, dword [r15 + 4]
dec eax
imul eax, r12d
movsxd rdi, eax
add rdi, r13
neg r12d
mov dword [rsp + 0x98], r12d
movzx eax, byte [r15 + 0xe]
mov qword [rsp + 0x80], rbp
mov qword [rsp + 0x40], rsi
test al, al
je 0x1400b8606
cmp al, 3
jbe 0x1400b89a6
sub al, 9
cmp al, 2
ja 0x1400b8606
xor ebp, ebp
mov rcx, r14
mov ebx, ebp
mov esi, ebp
call fcn.1400b9080
mov rcx, rax
mov qword [rsp + 0x38], rax
test rax, rax
je 0x1400b899f
movzx eax, byte [r15 + 0x1c]
cmp al, 8
je 0x1400b88bf
cmp al, 0xe
jbe 0x1400b85fc
cmp al, 0x10
jbe 0x1400b8769
cmp al, 0x18
je 0x1400b8633
cmp al, 0x20
jne 0x1400b85fc
mov eax, dword [r15]
cmp dword [rsp + 0xb0], ebx
lea ecx, [rax + rax*2]
cmovne ecx, eax
mov dword [rsp + 0x88], ecx
cmp dword [r15 + 4], ebx
jle 0x1400b85fc
mov r13, qword [rsp + 0x38]
mov rcx, r13
call fcn.1400b90c0
mov r14d, eax
cmp eax, 0xffffffff
je 0x1400b8627
test al, al
jns 0x1400b8487
mov rcx, r13
call fcn.1400b90c0
mov rcx, r13
mov dword [rsp + 0x98], eax
call fcn.1400b90c0
mov rcx, r13
mov dword [rsp + 0x30], eax
call fcn.1400b90c0
mov rcx, r13
mov dword [rsp + 0x90], eax
call fcn.1400b90c0
mov r10d, eax
cmp r14d, 0x80
jl 0x1400b85f2
mov r11d, dword [rsp + 0x98]
mov r13d, dword [rsp + 0x30]
lea r9d, [r14 - 0x7f]
mov r14d, dword [rsp + 0x90]
nop dword [rax + rax]
cmp dword [rsp + 0xa8], ebp
je 0x1400b8431
mov eax, dword [rsp + 0xa0]
movzx ecx, r10b
movzx r8d, r11b
shr eax, 0x10
movzx edx, al
test r10b, r10b
je 0x1400b83a8
cmp ecx, 0xff
jne 0x1400b8394
mov edx, r8d
jmp 0x1400b83a8
imul r8d, ecx
mov eax, 0xff
sub eax, ecx
imul edx, eax
add edx, r8d
sar edx, 8
movsxd rax, ebx
inc ebx
movzx r8d, r13b
mov byte [rax + rdi], dl
movzx eax, word [rsp + 0xa0]
shr ax, 8
movzx edx, al
test r10b, r10b
je 0x1400b83e9
cmp ecx, 0xff
jne 0x1400b83d5
mov edx, r8d
jmp 0x1400b83e9
imul r8d, ecx
mov eax, 0xff
sub eax, ecx
imul edx, eax
add edx, r8d
sar edx, 8
movsxd rax, ebx
inc ebx
movzx r8d, r14b
mov byte [rax + rdi], dl
movzx edx, byte [rsp + 0xa0]
test r10b, r10b
je 0x1400b8429
cmp ecx, 0xff
jne 0x1400b8415
movsxd rax, ebx
mov edx, r8d
mov byte [rax + rdi], dl
jmp 0x1400b8459
imul r8d, ecx
mov eax, 0xff
sub eax, ecx
imul edx, eax
add edx, r8d
sar edx, 8
movsxd rax, ebx
mov byte [rax + rdi], dl
jmp 0x1400b8459
movsxd rax, ebx
inc ebx
cmp dword [rsp + 0xb0], ebp
je 0x1400b8445
mov byte [rax + rdi], r10b
jmp 0x1400b845b
mov byte [rax + rdi], r11b
movsxd rax, ebx
inc ebx
mov byte [rax + rdi], r13b
movsxd rax, ebx
mov byte [rax + rdi], r14b
inc ebx
cmp ebx, dword [rsp + 0x88]
jne 0x1400b8474
inc esi
mov ebx, ebp
cmp esi, dword [r15 + 4]
jge 0x1400b8474
movsxd rax, r12d
add rdi, rax
dec r9
jne 0x1400b8360
mov r13, qword [rsp + 0x38]
jmp 0x1400b85f2
test eax, eax
js 0x1400b85f2
lea ecx, [rax + 1]
mov qword [rsp + 0x90], rcx
nop word [rax + rax]
mov rcx, r13
call fcn.1400b90c0
mov rcx, r13
mov r14d, eax
call fcn.1400b90c0
mov rcx, qword [rsp + 0x38]
mov r13d, eax
call fcn.1400b90c0
mov rcx, qword [rsp + 0x38]
mov dword [rsp + 0x98], eax
call fcn.1400b90c0
mov ecx, eax
cmp dword [rsp + 0xa8], ebp
je 0x1400b8597
mov r9d, dword [rsp + 0xa0]
movzx ecx, al
movzx r8d, r14b
mov eax, r9d
shr eax, 0x10
movzx edx, al
test ecx, ecx
je 0x1400b851d
cmp ecx, 0xff
jne 0x1400b8509
mov edx, r8d
jmp 0x1400b851d
imul r8d, ecx
mov eax, 0xff
sub eax, ecx
imul edx, eax
add edx, r8d
sar edx, 8
movsxd rax, ebx
inc ebx
movzx r8d, r13b
mov byte [rax + rdi], dl
movzx eax, r9w
shr ax, 8
movzx edx, al
test ecx, ecx
je 0x1400b8559
cmp ecx, 0xff
jne 0x1400b8545
mov edx, r8d
jmp 0x1400b8559
imul r8d, ecx
mov eax, 0xff
sub eax, ecx
imul edx, eax
add edx, r8d
sar edx, 8
movsxd rax, ebx
inc ebx
mov byte [rax + rdi], dl
mov edx, dword [rsp + 0x98]
movzx r8d, dl
movzx edx, r9b
test ecx, ecx
je 0x1400b85be
cmp ecx, 0xff
jne 0x1400b8581
mov edx, r8d
jmp 0x1400b85be
imul r8d, ecx
mov eax, 0xff
sub eax, ecx
imul edx, eax
add edx, r8d
sar edx, 8
jmp 0x1400b85be
movsxd rax, ebx
inc ebx
cmp dword [rsp + 0xb0], ebp
je 0x1400b85aa
mov byte [rax + rdi], cl
jmp 0x1400b85c6
mov edx, dword [rsp + 0x98]
mov byte [rax + rdi], r14b
movsxd rax, ebx
mov byte [rax + rdi], r13b
inc ebx
movsxd rax, ebx
inc ebx
mov byte [rax + rdi], dl
cmp ebx, dword [rsp + 0x88]
jne 0x1400b85df
inc esi
mov ebx, ebp
cmp esi, dword [r15 + 4]
jge 0x1400b85df
movsxd rax, r12d
add rdi, rax
dec qword [rsp + 0x90]
mov r13, qword [rsp + 0x38]
jne 0x1400b84a0
cmp esi, dword [r15 + 4]
jl 0x1400b82e1
mov rcx, qword [rsp + 0x38]
call fcn.1400f97e8
mov eax, 1
mov rsi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x80]
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rbx
ret
mov rcx, r13
call fcn.1400f97e8
xor eax, eax
jmp 0x1400b860b
cmp dword [r15 + 4], ebx
jle 0x1400b85fc
jmp 0x1400b8645
mov rcx, qword [rsp + 0x38]
call fcn.1400b90c0
mov r13d, eax
cmp eax, 0xffffffff
je 0x1400b8995
movsxd r14, ebx
test al, al
jns 0x1400b86ea
mov rcx, qword [rsp + 0x38]
call fcn.1400b90c0
mov rcx, qword [rsp + 0x38]
mov dword [rsp + 0x88], eax
call fcn.1400b90c0
mov rcx, qword [rsp + 0x38]
mov dword [rsp + 0x90], eax
call fcn.1400b90c0
mov r10d, eax
cmp r13d, 0x80
jl 0x1400b875a
mov r8d, dword [rsp + 0x88]
mov r9d, dword [rsp + 0x90]
lea edx, [r13 - 0x7f]
mov byte [r14 + rdi], r8b
mov byte [r14 + rdi + 1], r9b
mov byte [r14 + rdi + 2], r10b
mov eax, dword [r15]
add ebx, 3
add r14, 3
lea ecx, [rax + rax*2]
cmp ebx, ecx
jne 0x1400b86e3
inc esi
mov ebx, ebp
mov r14, rbp
cmp esi, dword [r15 + 4]
jge 0x1400b86e3
movsxd rax, r12d
add rdi, rax
dec rdx
jne 0x1400b86b1
jmp 0x1400b875a
test eax, eax
js 0x1400b875a
movsxd r13, dword [rsp + 0x98]
lea r12d, [rax + 1]
nop word [rax + rax]
mov rcx, qword [rsp + 0x38]
call fcn.1400b90c0
mov rcx, qword [rsp + 0x38]
mov byte [r14 + rdi], al
call fcn.1400b90c0
mov rcx, qword [rsp + 0x38]
mov byte [r14 + rdi + 1], al
call fcn.1400b90c0
add ebx, 3
mov byte [r14 + rdi + 2], al
mov eax, dword [r15]
add r14, 3
lea ecx, [rax + rax*2]
cmp ebx, ecx
jne 0x1400b874d
inc esi
mov ebx, ebp
mov r14, rbp
cmp esi, dword [r15 + 4]
jge 0x1400b874d
add rdi, r13
dec r12
jne 0x1400b8700
mov r12d, dword [rsp + 0x98]
cmp esi, dword [r15 + 4]
jl 0x1400b8640
jmp 0x1400b85fc
movsxd rax, dword [r15]
add rdi, rax
cmp dword [r15 + 4], ebx
jle 0x1400b887f
jmp 0x1400b8785
mov rcx, qword [rsp + 0x38]
call fcn.1400b90c0
mov r13d, eax
cmp eax, 0xffffffff
je 0x1400b8995
movsxd r14, ebx
test al, al
jns 0x1400b8813
mov rcx, qword [rsp + 0x38]
call fcn.1400b90c0
mov rcx, qword [rsp + 0x38]
mov dword [rsp + 0x88], eax
call fcn.1400b90c0
mov r8d, eax
cmp r13d, 0x80
jl 0x1400b886d
mov edx, dword [rsp + 0x88]
lea ecx, [r13 - 0x7f]
nop dword [rax]
nop word [rax + rax]
mov byte [r14 + rdi], dl
mov byte [r14 + rdi + 1], r8b
mov eax, dword [r15]
add ebx, 2
add eax, eax
add r14, 2
cmp ebx, eax
jne 0x1400b880c
inc esi
mov ebx, ebp
mov r14, rbp
cmp esi, dword [r15 + 4]
jge 0x1400b880c
movsxd rax, r12d
add rdi, rax
dec rcx
jne 0x1400b87e0
jmp 0x1400b886d
test eax, eax
js 0x1400b886d
movsxd r13, dword [rsp + 0x98]
lea r12d, [rax + 1]
mov rcx, qword [rsp + 0x38]
call fcn.1400b90c0
mov rcx, qword [rsp + 0x38]
mov byte [r14 + rdi], al
call fcn.1400b90c0
add ebx, 2
mov byte [r14 + rdi + 1], al
mov eax, dword [r15]
add r14, 2
add eax, eax
cmp ebx, eax
jne 0x1400b8860
inc esi
mov ebx, ebp
mov r14, rbp
cmp esi, dword [r15 + 4]
jge 0x1400b8860
add rdi, r13
dec r12
jne 0x1400b8823
mov r12d, dword [rsp + 0x98]
cmp esi, dword [r15 + 4]
jl 0x1400b8780
mov r13, qword [rsp + 0x90]
test r12d, r12d
jns 0x1400b8887
neg r12d
cmp dword [r15 + 4], ebp
jle 0x1400b85fc
movsxd rbx, r12d
nop dword [rax]
nop dword [rax + rax]
movsxd r8, dword [r15]
mov rcx, r13
lea rdx, [r8 + r13]
call fcn.1400b8ed0
inc ebp
add r13, rbx
cmp ebp, dword [r15 + 4]
jl 0x1400b88a0
jmp 0x1400b85fc
cmp dword [r15 + 4], ebx
jle 0x1400b85fc
mov r14, rbp
jmp 0x1400b88d5
mov rcx, qword [rsp + 0x38]
call fcn.1400b90c0
mov r13d, eax
cmp eax, 0xffffffff
je 0x1400b8995
test al, al
jns 0x1400b8938
mov rcx, qword [rsp + 0x38]
call fcn.1400b90c0
mov edx, eax
cmp r13d, 0x80
jl 0x1400b8986
lea ecx, [r13 - 0x7f]
nop word [rax + rax]
mov byte [r14 + rdi], dl
inc ebx
inc r14
cmp ebx, dword [r15]
jne 0x1400b8931
inc esi
mov ebx, ebp
mov r14, rbp
cmp esi, dword [r15 + 4]
jge 0x1400b8931
movsxd rax, r12d
add rdi, rax
dec rcx
jne 0x1400b8910
jmp 0x1400b8986
test eax, eax
js 0x1400b8986
movsxd r13, dword [rsp + 0x98]
lea r12d, [rax + 1]
nop dword [rax + rax]
mov rcx, qword [rsp + 0x38]
call fcn.1400b90c0
inc ebx
inc r14
mov byte [r14 + rdi - 1], al
cmp ebx, dword [r15]
jne 0x1400b8979
inc esi
mov ebx, ebp
mov r14, rbp
cmp esi, dword [r15 + 4]
jge 0x1400b8979
add rdi, r13
dec r12
jne 0x1400b8950
mov r12d, dword [rsp + 0x98]
cmp esi, dword [r15 + 4]
jl 0x1400b88d0
jmp 0x1400b85fc
mov rcx, qword [rsp + 0x38]
call fcn.1400f97e8
xor eax, eax
jmp 0x1400b860b
movzx eax, byte [r15 + 0x1c]
cmp al, 8
je 0x1400b8b30
cmp al, 0xe
jbe 0x1400b8606
cmp al, 0x10
jbe 0x1400b8ac8
cmp al, 0x18
je 0x1400b8a78
cmp al, 0x20
jne 0x1400b8606
lea eax, [rcx*4]
movsxd rcx, eax
call fcn.1400fa250
mov rbx, rax
test rax, rax
je 0x1400b899f
xor ebp, ebp
cmp dword [r15 + 4], ebp
jle 0x1400b8a61
mov r13d, dword [rsp + 0xb0]
nop word [rax + rax]
mov esi, dword [r15]
mov r9, r14
mov edx, 1
mov eax, esi
mov rcx, rbx
shl eax, 2
movsxd r8, eax
call fcn.1400fabdc
mov rdx, rax
lea eax, [rsi*4]
movsxd rcx, eax
cmp rdx, rcx
jne 0x1400b8a69
mov eax, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
mov r8d, esi
mov rdx, rbx
mov rcx, rdi
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], eax
call fcn.1400b8f30
movsxd rax, r12d
inc ebp
add rdi, rax
cmp ebp, dword [r15 + 4]
jl 0x1400b8a00
mov rcx, rbx
jmp 0x1400b8601
mov rcx, rbx
call fcn.1400f97e8
xor eax, eax
jmp 0x1400b860b
xor ebp, ebp
cmp dword [r15 + 4], ebp
jle 0x1400b8606
nop dword [rax]
nop dword [rax + rax]
mov eax, dword [r15]
mov r9, r14
mov edx, 1
lea ecx, [rax + rax*2]
movsxd rbx, ecx
mov rcx, rdi
mov r8, rbx
call fcn.1400fabdc
cmp rax, rbx
jne 0x1400b899f
movsxd rax, r12d
inc ebp
add rdi, rax
cmp ebp, dword [r15 + 4]
jl 0x1400b8a90
jmp 0x1400b8606
xor ebp, ebp
cmp dword [r15 + 4], ebp
jle 0x1400b8606
nop dword [rax]
nop dword [rax + rax]
movsxd rcx, dword [r15]
movsxd rbx, dword [r15]
mov r9, r14
lea eax, [rcx + rcx]
add rcx, rdi
mov edx, 1
movsxd r8, eax
call fcn.1400fabdc
mov rdx, rax
lea eax, [rbx + rbx]
movsxd rcx, eax
cmp rdx, rcx
jne 0x1400b899f
lea rdx, [rdi + rbx]
mov r8d, ebx
mov rcx, rdi
call fcn.1400b8ed0
movsxd rax, r12d
inc ebp
add rdi, rax
cmp ebp, dword [r15 + 4]
jl 0x1400b8ae0
jmp 0x1400b8606
xor ebp, ebp
cmp dword [r15 + 4], ebp
jle 0x1400b8606
nop dword [rax]
movsxd rbx, dword [r15]
mov r9, r14
mov edx, 1
mov r8, rbx
mov rcx, rdi
call fcn.1400fabdc
cmp rax, rbx
jne 0x1400b899f
movsxd rax, r12d
inc ebp
add rdi, rax
cmp ebp, dword [r15 + 4]
jl 0x1400b8b40
jmp 0x1400b8606