Function at 0x140015300
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
sub rsp, 0x20
mov r12, qword [rsp + 0x88]
mov rdi, r9
mov rbx, r8
mov r13, rdx
mov rsi, rcx
test r12, r12
jne 0x140015334
or eax, 0xffffffff
add rsp, 0x20
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov eax, dword [rdx]
mov qword [rsp + 0x50], rbp
cmp eax, 0xfffffffd
je 0x1400154e1
cmp eax, 0xfffffffe
je 0x1400153c4
cmp eax, 0xffffffff
je 0x140015361
xor eax, eax
mov rbp, qword [rsp + 0x50]
add rsp, 0x20
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
xor ebp, ebp
cmp qword [r8 + 0x10], rbp
je 0x140015377
mov rax, qword [r8 + 8]
mov qword [r8 + 0x10], rax
mov byte [rax], bpl
mov qword [r8], rbp
mov edx, 0x82
mov rcx, rbx
lea r8d, [rdx - 0x7a]
call fcn.14001f530
lea rdx, str.theora
mov r8d, 6
mov rcx, rbx
call fcn.140015180
mov rdx, rdi
mov rcx, rbx
call fcn.1400123a0
mov rdx, qword [rsp + 0x70]
mov rcx, rbx
call fcn.140011e60
test eax, eax
js 0x1400156af
mov edi, ebp
jmp 0x140015650
mov rdi, qword [rsp + 0x80]
test rdi, rdi
je 0x140015659
mov qword [rsp + 0x58], r14
mov r14, qword [rsp + 0x78]
or rsi, 0xffffffffffffffff
mov qword [rsp + 0x60], r15
nop dword [rax + rax]
inc rsi
cmp byte [r14 + rsi], 0
jne 0x1400153f0
xor ebp, ebp
cmp qword [r8 + 0x10], rbp
je 0x140015410
mov rax, qword [r8 + 8]
mov qword [r8 + 0x10], rax
mov byte [rax], bpl
mov qword [r8], rbp
mov edx, 0x81
mov rcx, rbx
lea r8d, [rdx - 0x79]
call fcn.14001f530
lea rdx, str.theora
mov r8d, 6
mov rcx, rbx
call fcn.140015180
mov r8d, 0x20
mov edx, esi
mov rcx, rbx
call fcn.14001f3d0
mov r8d, esi
mov rdx, r14
mov rcx, rbx
call fcn.140015180
mov edx, dword [rdi + 0x10]
mov r8d, 0x20
mov rcx, rbx
call fcn.14001f3d0
mov r15d, ebp
cmp dword [rdi + 0x10], ebp
jle 0x1400154d0
mov rsi, rbp
mov r14, rbp
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rdi]
mov r8d, 0x20
mov rcx, rbx
cmp qword [rsi + rax], rbp
je 0x1400154b8
mov rax, qword [rdi + 8]
mov edx, dword [r14 + rax]
call fcn.14001f3d0
mov rax, qword [rdi + 8]
mov rdx, qword [rdi]
mov r8d, dword [r14 + rax]
mov rdx, qword [rsi + rdx]
mov rcx, rbx
call fcn.140015180
jmp 0x1400154bf
xor edx, edx
call fcn.14001f3d0
inc r15d
add r14, 4
add rsi, 8
cmp r15d, dword [rdi + 0x10]
jl 0x140015480
mov r15, qword [rsp + 0x60]
mov r14, qword [rsp + 0x58]
mov edi, ebp
jmp 0x140015650
test rcx, rcx
je 0x140015659
xor ebp, ebp
cmp qword [r8 + 0x10], rbp
je 0x140015500
mov rax, qword [r8 + 8]
mov qword [r8 + 0x10], rax
mov byte [rax], bpl
mov qword [r8], rbp
mov edx, 0x80
mov rcx, rbx
lea r8d, [rdx - 0x78]
call fcn.14001f530
lea rdx, str.theora
mov r8d, 6
mov rcx, rbx
call fcn.140015180
mov edx, 3
mov rcx, rbx
lea r8d, [rdx + 5]
call fcn.14001f530
mov edx, 2
mov rcx, rbx
lea r8d, [rdx + 6]
call fcn.14001f530
mov edi, 1
mov rcx, rbx
lea r8d, [rdi + 7]
mov edx, edi
call fcn.14001f530
mov edx, dword [rsi + 4]
lea r8d, [rdi + 0xf]
shr edx, 4
mov rcx, rbx
call fcn.14001f530
mov edx, dword [rsi + 8]
lea r8d, [rdi + 0xf]
shr edx, 4
mov rcx, rbx
call fcn.14001f530
mov edx, dword [rsi + 0xc]
lea r8d, [rdi + 0x17]
mov rcx, rbx
call fcn.14001f530
mov edx, dword [rsi + 0x10]
lea r8d, [rdi + 0x17]
mov rcx, rbx
call fcn.14001f530
mov edx, dword [rsi + 0x14]
lea r8d, [rdi + 7]
mov rcx, rbx
call fcn.14001f530
mov edx, dword [rsi + 0x18]
lea r8d, [rdi + 7]
mov rcx, rbx
call fcn.14001f530
mov edx, dword [rsi + 0x1c]
lea r8d, [rdi + 0x1f]
mov rcx, rbx
call fcn.14001f530
mov edx, dword [rsi + 0x20]
lea r8d, [rdi + 0x1f]
mov rcx, rbx
call fcn.14001f530
mov edx, dword [rsi + 0x24]
lea r8d, [rdi + 0x17]
mov rcx, rbx
call fcn.14001f530
mov edx, dword [rsi + 0x28]
lea r8d, [rdi + 0x17]
mov rcx, rbx
call fcn.14001f530
mov edx, dword [rsi + 0x2c]
lea r8d, [rdi + 7]
mov rcx, rbx
call fcn.14001f530
mov edx, dword [rsi + 0x34]
lea r8d, [rdi + 0x17]
mov rcx, rbx
call fcn.14001f530
mov edx, dword [rsi + 0x38]
lea r8d, [rdi + 5]
mov rcx, rbx
call fcn.14001f530
mov edx, dword [rsi + 0x3c]
lea r8d, [rdi + 4]
mov rcx, rbx
call fcn.14001f530
mov edx, dword [rsi + 0x30]
lea r8d, [rdi + 1]
mov rcx, rbx
call fcn.14001f530
lea r8d, [rdi + 2]
xor edx, edx
mov rcx, rbx
call fcn.14001f530
mov rax, qword [rbx + 8]
test rax, rax
jne 0x14001566d
or eax, 0xffffffff
mov rbp, qword [rsp + 0x50]
add rsp, 0x20
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov qword [r12], rax
mov eax, dword [rbx + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, dword [rbx]
mov dword [r12 + 0xc], edi
mov dword [r12 + 0x10], ebp
mov dword [r12 + 8], eax
mov qword [r12 + 0x18], rbp
mov eax, dword [r13]
add eax, 3
cdqe
mov qword [r12 + 0x20], rax
inc dword [r13]
mov eax, dword [r13]
add eax, 3
mov rbp, qword [rsp + 0x50]
add rsp, 0x20
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret