Function at 0x140129900
Capabilities:
Read file on windows

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xc0
mov qword [rbp - 0x61], 0xfffffffffffffffe
mov qword [rsp + 0x110], rbx
mov rax, qword [0x14026f088]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov rdi, rdx
mov qword [rbp - 0x69], rdx
mov r12, rcx
mov eax, dword [rdx + 8]
mov dword [rbp - 0x79], eax
movzx r8d, al
movzx eax, byte [rbp - 0x76]
mov byte [rbp - 0x79], al
mov byte [rbp - 0x76], r8b
movzx edx, byte [rbp - 0x78]
movzx eax, byte [rbp - 0x77]
mov byte [rbp - 0x78], al
mov byte [rbp - 0x77], dl
mov eax, dword [rbp - 0x79]
mov dword [rdi + 8], eax
xor r8d, r8d
mov edx, eax
mov rcx, qword [rcx]
call fcn.14019b910
xor eax, eax
mov dword [rbp - 0x39], eax
mov word [rbp - 0x35], ax
mov r9, qword [r12]
lea edx, [rax + 6]
lea r8d, [rax + 1]
lea rcx, [rbp - 0x39]
call fcn.14019a348
movzx eax, word [rbp - 0x37]
mov word [rbp - 0x79], ax
movzx eax, byte [rbp - 0x36]
mov byte [rbp - 0x79], al
movzx eax, byte [rbp - 0x37]
mov byte [rbp - 0x78], al
movzx eax, word [rbp - 0x79]
mov word [rbp - 0x37], ax
movzx ecx, word [rbp - 0x35]
mov word [rbp - 0x79], cx
movzx ecx, byte [rbp - 0x34]
mov byte [rbp - 0x79], cl
movzx ecx, byte [rbp - 0x35]
mov byte [rbp - 0x78], cl
movzx r8d, word [rbp - 0x79]
mov word [rbp - 0x35], r8w
movzx ecx, word [rbp - 0x39]
mov word [rbp - 0x79], cx
movzx ecx, byte [rbp - 0x38]
mov byte [rbp - 0x79], cl
movzx ecx, byte [rbp - 0x39]
mov byte [rbp - 0x78], cl
movzx ecx, word [rbp - 0x79]
mov word [rbp - 0x39], cx
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x21], xmm0
xor r15d, r15d
mov r13d, r15d
mov qword [rbp - 0x11], r15
movzx esi, r15w
movabs rcx, 0x2aaaaaaaaaaaaaab
mov rbx, qword [rbp - 0x19]
mov r14, qword [rbp - 0x21]
cmp r15w, ax
jae 0x140129bbd
mov r15, rcx
nop dword [rax]
nop dword [rax + rax]
xor eax, eax
mov qword [rbp - 0x31], rax
mov dword [rbp - 0x29], eax
mov r9, qword [r12]
lea edx, [rax + 0xc]
lea r8d, [rax + 1]
lea rcx, [rbp - 0x31]
call fcn.14019a348
movzx eax, word [rbp - 0x2b]
mov word [rbp - 0x79], ax
movzx eax, byte [rbp - 0x2a]
mov byte [rbp - 0x79], al
movzx eax, byte [rbp - 0x2b]
mov byte [rbp - 0x78], al
movzx eax, word [rbp - 0x79]
mov word [rbp - 0x2b], ax
movzx eax, word [rbp - 0x2f]
mov word [rbp - 0x79], ax
movzx eax, byte [rbp - 0x2e]
mov byte [rbp - 0x79], al
movzx eax, byte [rbp - 0x2f]
mov byte [rbp - 0x78], al
movzx eax, word [rbp - 0x79]
mov word [rbp - 0x2f], ax
movzx eax, word [rbp - 0x27]
mov word [rbp - 0x79], ax
movzx eax, byte [rbp - 0x26]
mov byte [rbp - 0x79], al
movzx eax, byte [rbp - 0x27]
mov byte [rbp - 0x78], al
movzx eax, word [rbp - 0x79]
mov word [rbp - 0x27], ax
movzx eax, word [rbp - 0x29]
mov word [rbp - 0x79], ax
movzx eax, byte [rbp - 0x28]
mov byte [rbp - 0x79], al
movzx eax, byte [rbp - 0x29]
mov byte [rbp - 0x78], al
movzx eax, word [rbp - 0x79]
mov word [rbp - 0x29], ax
movzx eax, word [rbp - 0x31]
mov word [rbp - 0x79], ax
movzx eax, byte [rbp - 0x30]
mov byte [rbp - 0x79], al
movzx eax, byte [rbp - 0x31]
mov byte [rbp - 0x78], al
movzx eax, word [rbp - 0x79]
mov word [rbp - 0x31], ax
movzx eax, word [rbp - 0x2d]
mov word [rbp - 0x79], ax
movzx eax, byte [rbp - 0x2c]
mov byte [rbp - 0x79], al
movzx eax, byte [rbp - 0x2d]
mov byte [rbp - 0x78], al
movzx eax, word [rbp - 0x79]
mov word [rbp - 0x2d], ax
lea rax, [rbp - 0x31]
cmp rax, rbx
jae 0x140129b64
lea rax, [rbp - 0x31]
cmp r14, rax
ja 0x140129b64
lea rcx, [rbp - 0x31]
sub rcx, r14
mov rax, r15
imul rcx
mov rdi, rdx
sar rdi, 1
mov rax, rdi
shr rax, 0x3f
add rdi, rax
cmp rbx, r13
jne 0x140129b4a
lea rcx, [rbp - 0x21]
call fcn.14012a8a0
mov r13, qword [rbp - 0x11]
mov rbx, qword [rbp - 0x19]
mov r14, qword [rbp - 0x21]
lea rax, [rdi + rdi*2]
test rbx, rbx
je 0x140129b92
movsd xmm0, qword [r14 + rax*4]
movsd qword [rbx], xmm0
mov eax, dword [r14 + rax*4 + 8]
jmp 0x140129b8f
cmp rbx, r13
jne 0x140129b7e
lea rcx, [rbp - 0x21]
call fcn.14012a8a0
mov r13, qword [rbp - 0x11]
mov rbx, qword [rbp - 0x19]
mov r14, qword [rbp - 0x21]
test rbx, rbx
je 0x140129b92
movsd xmm0, qword [rbp - 0x31]
movsd qword [rbx], xmm0
mov eax, dword [rbp - 0x29]
mov dword [rbx + 8], eax
add rbx, 0xc
mov qword [rbp - 0x19], rbx
inc si
cmp si, word [rbp - 0x37]
jb 0x140129a30
movzx r8d, word [rbp - 0x35]
mov rdi, qword [rbp - 0x69]
xor r15d, r15d
movabs rcx, 0x2aaaaaaaaaaaaaab
mov qword [rbp - 0x71], r15
sub rbx, r14
mov rax, rcx
imul rbx
mov rcx, rdx
sar rcx, 1
mov rax, rcx
shr rax, 0x3f
add rcx, rax
mov qword [rbp - 0x31], rcx
je 0x14012a04a
lea rsi, [r14 + 8]
or rbx, 0xffffffffffffffff
movzx eax, word [rsi - 8]
test ax, ax
je 0x140129d92
cmp ax, 3
je 0x140129d92
movzx edx, word [rsi + 2]
movzx eax, r8w
add edx, eax
add edx, dword [rdi + 8]
xor r8d, r8d
mov rcx, qword [r12]
call fcn.14019b910
movzx eax, word [rsi]
inc eax
movsxd r15, eax
mov rcx, r15
call fcn.140185afc
mov rdi, rax
mov r8, r15
xor edx, edx
mov rcx, rax
call fcn.14018f1e0
movzx edx, word [rsi]
mov r9, qword [r12]
lea r8d, [rbx + 2]
mov rcx, rdi
call fcn.14019a348
mov qword [rbp + InitCommonControls], 0xf
xor eax, eax
mov qword [rbp + 7], rax
mov byte [rbp - 9], al
cmp byte [rdi], al
jne 0x140129c69
mov r8d, eax
jmp 0x140129c79
mov r8, rbx
nop dword [rax]
inc r8
cmp byte [rdi + r8], al
jne 0x140129c70
mov rdx, rdi
lea rcx, [rbp - 9]
call fcn.140126d60
nop
movzx ebx, word [rsi - 2]
lea rdx, [rbp - 9]
lea rcx, [rbp - 0x59]
call fcn.14012a270
nop
mov r8d, ebx
cmp ebx, 7
ja 0x140129cac
mov rdx, rax
mov rcx, r12
call fcn.14012a0c0
nop
mov rax, qword [rbp - 0x41]
cmp rax, 8
jb 0x140129d10
inc rax
mov rcx, qword [rbp - 0x59]
movabs rdx, 0x7fffffffffffffff
cmp rax, rdx
ja 0x140129f37
add rax, rax
cmp rax, 0x1000
jb 0x140129d0b
test cl, 0x1f
jne 0x140129f31
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x140129f2b
sub rcx, rax
cmp rcx, 8
jb 0x140129f25
cmp rcx, 0x27
ja 0x140129f1f
mov rcx, rax
call fcn.140185a8c
mov r8, r15
xor edx, edx
mov rcx, rdi
call fcn.14018f1e0
mov rcx, rdi
call fcn.140185a84
nop
mov rax, qword [rbp + 0xf]
cmp byte [r12 + 0x128], 0xff
je 0x140129f5b
cmp rax, 0x10
jb 0x140129ef8
inc rax
mov rcx, qword [rbp - 9]
cmp rax, 0xffffffffffffffff
ja 0x140129f55
cmp rax, 0x1000
jb 0x140129ef3
test cl, 0x1f
jne 0x140129f4f
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x140129f49
sub rcx, rax
cmp rcx, 8
jb 0x140129f43
cmp rcx, 0x27
ja 0x140129f3d
jmp 0x140129ef0
movzx edx, word [rsi + 2]
movzx eax, r8w
add edx, eax
add edx, dword [rdi + 8]
xor r8d, r8d
mov rcx, qword [r12]
call fcn.14019b910
movzx eax, word [rsi]
shr eax, 1
inc eax
movsxd rdi, eax
mov eax, 2
mul rdi
cmovo rax, rbx
mov rcx, rax
call fcn.140185afc
mov rbx, rax
lea r15, [rdi + rdi]
mov r8, r15
xor edx, edx
mov rcx, rax
call fcn.14018f1e0
movzx edx, word [rsi]
mov r9, qword [r12]
mov r8d, 1
mov rcx, rbx
call fcn.14019a348
xor r8d, r8d
mov edx, r8d
test rdi, rdi
je 0x140129e25
nop dword [rax]
movzx eax, word [rbx + rdx*2]
mov word [rbp - 0x79], ax
movzx ecx, al
movzx eax, byte [rbp - 0x78]
mov byte [rbp - 0x79], al
mov byte [rbp - 0x78], cl
movzx eax, word [rbp - 0x79]
mov word [rbx + rdx*2], ax
inc rdx
cmp rdx, rdi
jb 0x140129e00
mov qword [rbp + 0xf], 7
mov qword [rbp + 7], r8
mov word [rbp - 9], r8w
cmp word [rbx], r8w
je 0x140129e4b
or r8, 0xffffffffffffffff
inc r8
cmp word [rbx + r8*2], 0
jne 0x140129e40
mov rdx, rbx
lea rcx, [rbp - 9]
call fcn.140003290
nop
movzx r8d, word [rsi - 2]
cmp r8d, 7
ja 0x140129e6f
lea rdx, [rbp - 9]
mov rcx, r12
call fcn.14012a0c0
mov r8, r15
xor edx, edx
mov rcx, rbx
call fcn.14018f1e0
mov rcx, rbx
call fcn.140185a84
nop
mov rax, qword [rbp + 0xf]
cmp byte [r12 + 0x128], 0xff
je 0x140129fdc
cmp rax, 8
jb 0x140129ef8
inc rax
mov rcx, qword [rbp - 9]
movabs rdx, 0x7fffffffffffffff
cmp rax, rdx
ja 0x140129fd6
add rax, rax
cmp rax, 0x1000
jb 0x140129ef3
test cl, 0x1f
jne 0x140129fd0
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x140129fca
sub rcx, rax
cmp rcx, 8
jb 0x140129fc4
cmp rcx, 0x27
ja 0x140129fbe
mov rcx, rax
call fcn.140185a8c
mov rcx, qword [rbp - 0x71]
inc rcx
mov qword [rbp - 0x71], rcx
add rsi, 0xc
cmp rcx, qword [rbp - 0x31]
jae 0x14012a047
movzx r8d, word [rbp - 0x35]
mov rdi, qword [rbp - 0x69]
jmp 0x140129be8
call fcn.140190574
int3
call fcn.140190574
int3
call fcn.140190574
int3
call fcn.140190574
int3
call fcn.140190574
nop
call fcn.140190574
int3
call fcn.140190574
int3
call fcn.140190574
int3
call fcn.140190574
int3
call fcn.140190574
int3
cmp rax, 0x10
jb 0x14012a047
inc rax
mov rcx, qword [rbp - 9]
cmp rax, 0xffffffffffffffff
jbe 0x140129f78
call fcn.140190574
int3
cmp rax, 0x1000
jb 0x14012a042
test byte [rbp - 9], 0x1f
je 0x140129f90
call fcn.140190574
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x140129f9f
call fcn.140190574
int3
sub rcx, rax
cmp rcx, 8
jae 0x140129fae
call fcn.140190574
int3
cmp rcx, 0x27
jbe 0x14012a03f
call fcn.140190574
int3
call fcn.140190574
int3
call fcn.140190574
int3
call fcn.140190574
int3
call fcn.140190574
int3
call fcn.140190574
int3
cmp rax, 8
jb 0x14012a047
inc rax
mov rcx, qword [rbp - 9]
movabs rdx, 0x7fffffffffffffff
cmp rax, rdx
jbe 0x140129ffe
call fcn.140190574
int3
add rax, rax
cmp rax, 0x1000
jb 0x14012a042
test byte [rbp - 9], 0x1f
je 0x14012a015
call fcn.140190574
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x14012a024
call fcn.140190574
int3
sub rcx, rax
cmp rcx, 8
jae 0x14012a033
call fcn.140190574
int3
cmp rcx, 0x27
jbe 0x14012a03f
call fcn.140190574
int3
mov rcx, rax
call fcn.140185a8c
xor r15d, r15d
mov rcx, qword [r12]
test rcx, rcx
je 0x14012a063
cmp byte [r12 + 0x129], 0
jne 0x14012a063
call fcn.14019a494
mov qword [r12], r15
test r14, r14
je 0x14012a091
sub r13, r14
movabs rax, 0x2aaaaaaaaaaaaaab
imul r13
sar rdx, 1
mov r8, rdx
shr r8, 0x3f
add r8, rdx
mov rdx, r14
call fcn.14012a970
mov al, 1
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.140185a60
mov rbx, qword [rsp + 0x110]
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret