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

Disassembly:
push r15
mov eax, 0x1068
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.22dcea7d0
sub rsp, rax
mov rax, qword [rsp + 0x10d0]
mov dword [rax], 0
mov dword [rsp + 0x10b8], edx
mov rbx, rcx
mov esi, r9d
mov qword [rsp + 0x10c0], r8
mov dword [rsp + 0x74], 0
test rcx, rcx
je 0x22dba3a69
mov eax, dword [rcx + 0x44]
cmp edx, eax
jae 0x22dba3a69
mov eax, dword [rcx + 0x20]
cmp eax, 1
je 0x22dba30ce
mov rax, qword [rcx + 0x28]
cmp qword [rsp + 0x10d8], rax
jae 0x22dba30e8
xor r13d, r13d
mov eax, r13d
add rsp, 0x1068
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edi, r9d
add rdi, qword [rsp + 0x10d8]
mov rax, qword [rcx + 0x30]
cmp rdi, rax
jae 0x22dba30ce
mov rbp, qword [rcx + 0x28]
mov rdx, qword [rcx + 0x30]
mov ecx, dword [rsp + 0x10b8]
lea rax, [rcx*8]
mov qword [rsp + 0x50], rcx
sub rax, rcx
shl rax, 3
mov qword [rsp + 0x40], rax
cmp qword [rsp + 0x10d8], rbp
jae 0x22dba33b7
mov r12d, edi
xor eax, eax
sub r12d, edx
cmp rdi, rdx
cmovbe r12d, eax
mov eax, dword [rbx + 0x44]
mov dword [rsp + 0x3c], eax
mov eax, edi
sub eax, ebp
mov dword [rsp + 0x58], eax
je 0x22dba31c7
mov eax, dword [rsp + 0x3c]
xor r8d, r8d
cmp dword [rsp + 0x10b8], eax
jae 0x22dba317d
mov rax, qword [rbx + 0x50]
mov rdx, qword [rsp + 0x40]
movzx r8d, byte [rax + rdx + 9]
mov eax, dword [rsp + 0x58]
shl r8d, 2
imul r8, rax
mov rcx, qword [rsp + 0x10c0]
xor edx, edx
call sub.msvcrt.dll_memset
mov eax, dword [rbx + 0x44]
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x10b8], eax
jae 0x22dba31c3
mov rdx, qword [rsp + 0x40]
mov rax, qword [rbx + 0x50]
movzx eax, byte [rax + rdx + 9]
imul eax, dword [rsp + 0x58]
mov rdx, qword [rsp + 0x10c0]
lea rax, [rdx + rax*4]
mov qword [rsp + 0x10c0], rax
sub esi, edi
add esi, ebp
sub esi, r12d
mov edi, dword [rbx + 0x40]
mov rax, qword [rbx + 8]
mov dword [rsp + 0x4c], edi
test edi, edi
jne 0x22dba31e4
cmp dword [rsp + 0x3c], 1
je 0x22dba3611
test byte [rax + 0x14], 1
je 0x22dba33d8
mov edi, dword [rsp + 0x3c]
cmp dword [rsp + 0x4c], edi
je 0x22dba3212
mov r8d, 0x10fd3
lea rdx, [0x22dd850e0]
lea rcx, str.outputBusCount__inputBusCount
call qword [sym.imp.msvcrt.dll__assert]
cmp dword [rsp + 0x3c], 1
je 0x22dba3233
mov r8d, 0x10fd4
lea rdx, [0x22dd850e0]
lea rcx, str.outputBusCount__1
call qword [sym.imp.msvcrt.dll__assert]
mov r14d, dword [rsp + 0x10b8]
test r14d, r14d
jne 0x22dba39be
mov rax, qword [rsp + 0x10c0]
mov rdx, qword [rbx + 0x48]
mov r9d, esi
mov rcx, rbx
mov r8, qword [rsp + 0x10c0]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x870], rax
mov rax, qword [rsp + 0x10d8]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x74]
mov qword [rsp + 0x20], rax
call fcn.22dba3a80
mov r13d, eax
test eax, eax
jne 0x22dba32a5
mov esi, dword [rsp + 0x74]
mov dword [rsp + 0x70], esi
mov dword [rsp + 0x6c], esi
test esi, esi
jne 0x22dba39ea
mov rax, qword [rbx + 0x50]
mov rsi, qword [rsp + 0x40]
mov ecx, dword [rax + rsi + 0x1c]
mov eax, dword [rbx + 0x44]
cmp dword [rsp + 0x10b8], eax
jae 0x22dba38ce
cmp qword [rsp + 0x10c0], 0
mov edx, dword [rsp + 0x74]
movd xmm1, ecx
je 0x22dba339b
comiss xmm1, dword [0x22dd855b4]
je 0x22dba339b
mov rax, qword [rbx + 0x50]
movzx r8d, byte [rax + rsi + 9]
imul r8d, edx
test r8, r8
je 0x22dba339b
lea rax, [r8 - 1]
cmp rax, 2
jbe 0x22dba3a74
mov r9, r8
mov rax, qword [rsp + 0x10c0]
movd xmm2, ecx
shr r9, 2
shufps xmm2, xmm2, 0
shl r9, 4
add r9, rax
nop dword [rax]
movups xmm0, xmmword [rax]
add rax, 0x10
mulps xmm0, xmm2
movups xmmword [rax - 0x10], xmm0
cmp r9, rax
jne 0x22dba3330
mov rax, r8
and rax, 0xfffffffffffffffc
cmp r8, rax
je 0x22dba339b
sub r8, rax
cmp r8, 1
je 0x22dba3387
mov rsi, qword [rsp + 0x10c0]
movd xmm0, ecx
mov rcx, r8
shufps xmm0, xmm0, 0xe0
and rcx, 0xfffffffffffffffe
lea r9, [rsi + rax*4]
add rax, rcx
movq xmm2, qword [r9]
mulps xmm0, xmm2
movlps qword [r9], xmm0
cmp rcx, r8
je 0x22dba339b
mov rsi, qword [rsp + 0x10c0]
lea rax, [rsi + rax*4]
mulss xmm1, dword [rax]
movss dword [rax], xmm1
lock add qword [rbx + 0x38], rdx
mov rsi, qword [rsp + 0x10d0]
mov eax, dword [rsp + 0x58]
add eax, dword [rsp + 0x74]
mov dword [rsi], eax
jmp 0x22dba30d1
mov eax, dword [rbx + 0x44]
mov dword [rsp + 0x58], 0
mov dword [rsp + 0x3c], eax
mov eax, edx
sub eax, edi
add eax, r9d
cmp rdi, rdx
cmova esi, eax
jmp 0x22dba31ca
movzx edx, word [rbx + 0x18]
mov edi, esi
mov rax, qword [rax + 8]
mov dword [rsp + 0x78], esi
cmp edx, esi
cmovbe edi, edx
mov dword [rsp + 0x48], edi
test rax, rax
je 0x22dba3408
mov edx, edi
lea r8, [rsp + 0x78]
mov rcx, rbx
call rax
movzx edx, word [rbx + 0x18]
mov esi, dword [rsp + 0x78]
cmp edx, esi
jae 0x22dba3410
mov dword [rsp + 0x78], edx
mov rax, qword [rbx + 0x50]
mov rsi, qword [rsp + 0x40]
mov edx, dword [rax + rsi + 0xc]
and edx, 1
je 0x22dba38d7
mov eax, dword [rsp + 0x4c]
xor r13d, r13d
mov word [rbx + 0x1a], r13w
xor r13d, r13d
sub eax, 1
mov dword [rsp + 0x5c], eax
mov r12d, dword [rsp + 0x3c]
mov dword [rsp + 0x6c], 0
test r12d, r12d
je 0x22dba3509
mov ebp, dword [rsp + 0x3c]
xor r9d, r9d
xor r8d, r8d
lea rdi, [rsp + 0x80]
nop dword [rax]
mov rax, qword [rbx + 0x50]
lock and dword [rax + r9 + 0xc], 0xfffffffe
mov eax, dword [rbx + 0x40]
mov rdx, qword [rbx + 0x10]
test eax, eax
je 0x22dba34b4
mov r10, qword [rbx + 0x48]
sub eax, 1
movzx r11d, word [rbx + 0x18]
lea rax, [rax + rax*8]
lea rcx, [r10 + 0x40]
lea r10, [r10 + rax*8 + 0x88]
nop word [rax + rax]
movzx eax, byte [rcx]
add rcx, 0x48
imul eax, r11d
lea rdx, [rdx + rax*4]
cmp r10, rcx
jne 0x22dba34a0
test r8, r8
je 0x22dba34f4
lea esi, [r8 - 1]
mov r10, qword [rbx + 0x50]
movzx r11d, word [rbx + 0x18]
lea rax, [rsi*8]
sub rax, rsi
lea rcx, [r10 + 9]
lea r10, [r10 + rax*8 + 0x41]
nop word [rax + rax]
movzx eax, byte [rcx]
add rcx, 0x38
imul eax, r11d
lea rdx, [rdx + rax*4]
cmp rcx, r10
jne 0x22dba34e0
mov qword [rdi + r8*8], rdx
add r8, 1
add r9, 0x38
cmp r8, rbp
jne 0x22dba3468
movzx r11d, word [rbx + 0x1c]
test r11w, r11w
jne 0x22dba3681
mov edi, dword [rsp + 0x4c]
test edi, edi
je 0x22dba3714
xor r15d, r15d
lea rdi, [rsp + 0x7c]
mov r8, qword [rbx + 0x10]
mov r10, qword [rbx + 0x48]
mov ebp, dword [rsp + 0x5c]
mov r13, r15
xor esi, esi
xor r14d, r14d
lea r12, [rsp + 0x870]
mov r15, rdi
nop dword [rax + rax]
mov qword [r12 + r14*8], r8
mov r9d, dword [rsp + 0x78]
lea rdx, [r10 + r13]
mov rcx, rbx
mov rax, qword [rsp + 0x10d8]
mov qword [rsp + 0x20], r15
mov qword [rsp + 0x28], rax
call fcn.22dba3a80
mov edi, eax
test eax, eax
jne 0x22dba3668
mov eax, dword [rsp + 0x7c]
cmp esi, eax
cmovb esi, eax
mov r10d, dword [rsp + 0x78]
cmp r10d, eax
jbe 0x22dba35cb
cmp dword [rbx + 0x40], r14d
jbe 0x22dba3677
mov rdx, qword [rbx + 0x48]
sub r10d, eax
movzx edx, byte [rdx + r13 + 0x40]
mov ecx, edx
lea r8d, [rdx*4]
imul ecx, eax
imul r8, r10
shl rcx, 2
add rcx, qword [r12 + r14*8]
xor edx, edx
call sub.msvcrt.dll_memset
cmp rbp, r14
je 0x22dba370e
mov r10, qword [rbx + 0x48]
mov r8, qword [rbx + 0x10]
movzx r9d, word [rbx + 0x18]
lea rdx, [r10 + 0x40]
lea rcx, [r10 + r13 + 0x88]
nop dword [rax]
movzx eax, byte [rdx]
add rdx, 0x48
imul eax, r9d
lea r8, [r8 + rax*4]
cmp rcx, rdx
jne 0x22dba35f0
add r14, 1
add r13, 0x48
jmp 0x22dba3550
mov rdi, qword [rsp + 0x10c0]
mov dword [rsp + 0x70], 0
mov dword [rsp + 0x6c], esi
mov qword [rsp + 0x80], rdi
mov rax, qword [rax]
test rax, rax
je 0x22dba3657
lea rdx, [rsp + 0x6c]
lea r9, [rsp + 0x80]
mov rcx, rbx
mov qword [rsp + 0x20], rdx
lea r8, [rsp + 0x70]
xor edx, edx
call rax
mov esi, dword [rsp + 0x6c]
mov dword [rsp + 0x74], esi
xor r13d, r13d
jmp 0x22dba32a5
mov dword [rsp + 0x7c], 0
xor eax, eax
jmp 0x22dba358a
xor r8d, r8d
xor ecx, ecx
jmp 0x22dba35c0
mov ebp, dword [rsp + 0x4c]
test ebp, ebp
je 0x22dba371f
mov rdi, qword [rbx + 0x10]
movzx r15d, word [rbx + 0x1e]
xor esi, esi
xor r10d, r10d
mov r14d, dword [rbx + 0x40]
mov ebp, dword [rsp + 0x5c]
lea r12, [rsp + 0x870]
mov rcx, rdi
nop
cmp r14d, r10d
jbe 0x22dba36c6
mov rax, qword [rbx + 0x48]
movzx eax, byte [rax + rsi + 0x40]
imul eax, r15d
lea rcx, [rcx + rax*4]
mov qword [r12 + r10*8], rcx
cmp r10, rbp
je 0x22dba371f
mov rax, qword [rbx + 0x48]
movzx r9d, word [rbx + 0x18]
mov rcx, rdi
lea rdx, [rax + 0x40]
lea r8, [rax + rsi + 0x88]
nop word [rax + rax]
movzx eax, byte [rdx]
add rdx, 0x48
imul eax, r9d
lea rcx, [rcx + rax*4]
cmp r8, rdx
jne 0x22dba36f0
add r10, 1
add rsi, 0x48
jmp 0x22dba36b0
mov r13d, edi
mov r11d, esi
xor esi, esi
mov word [rbx + 0x1c], r11w
mov word [rbx + 0x1e], si
cmp qword [rsp + 0x10c0], 0
movzx eax, word [rbx + 0x1a]
je 0x22dba3769
mov esi, dword [rbx + 0x44]
xor ecx, ecx
cmp dword [rsp + 0x10b8], esi
jae 0x22dba374d
mov rdx, qword [rbx + 0x50]
mov rsi, qword [rsp + 0x40]
movzx ecx, byte [rdx + rsi + 9]
shl ecx, 2
mov rsi, qword [rsp + 0x50]
movzx edx, ax
imul rdx, rcx
add rdx, qword [rsp + 0x10c0]
mov qword [rsp + rsi*8 + 0x80], rdx
mov r8, qword [rbx + 8]
mov esi, dword [rsp + 0x48]
movzx ecx, ax
mov r10d, dword [r8 + 0x14]
sub esi, ecx
mov dword [rsp + 0x6c], esi
test r10b, 2
je 0x22dba381e
mov r9d, dword [rsp + 0x78]
and r10d, 4
mov dword [rsp + 0x70], r9d
mov edx, r9d
je 0x22dba38ab
mov r10d, dword [rbx + 0x1c]
test r10d, r10d
jne 0x22dba38ab
cmp r11w, r9w
jae 0x22dba37b7
mov word [rbx + 0x1c], r9w
mov r10, qword [r8]
test r10, r10
je 0x22dba39dd
lea rax, [rsp + 0x6c]
mov rcx, rbx
lea r8, [rsp + 0x70]
xor edx, edx
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x80]
call r10
mov r9d, dword [rsp + 0x6c]
movzx eax, word [rbx + 0x1a]
add eax, r9d
movzx ecx, ax
mov word [rbx + 0x1a], ax
cmp dword [rsp + 0x48], ecx
je 0x22dba3806
or r9d, dword [rsp + 0x70]
jne 0x22dba343c
mov rax, qword [rbx + 0x50]
mov rsi, qword [rsp + 0x40]
mov dword [rsp + 0x74], ecx
lock or dword [rax + rsi + 0xc], 1
jmp 0x22dba32a5
movzx r9d, r11w
mov edx, r11d
mov dword [rsp + 0x70], r9d
test r9d, r9d
jne 0x22dba3860
mov r9d, dword [r8 + 0x14]
and r9d, 8
jne 0x22dba3860
mov dword [rsp + 0x6c], 0
movzx r11d, word [rbx + 0x1c]
sub r11d, edx
add dx, word [rbx + 0x1e]
mov r8d, edx
movzx edx, r11w
shl r8d, 0x10
or edx, r8d
mov dword [rbx + 0x1c], edx
jmp 0x22dba37f1
mov r10, qword [r8]
test r10, r10
je 0x22dba38c1
lea rax, [rsp + 0x6c]
lea r12, [rsp + 0x870]
mov rcx, rbx
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x80]
mov rdx, r12
lea r8, [rsp + 0x70]
call r10
mov r9d, dword [rsp + 0x6c]
movzx eax, word [rbx + 0x1a]
movzx edx, word [rsp + 0x70]
movzx r11d, word [rbx + 0x1c]
add eax, r9d
movzx ecx, ax
jmp 0x22dba3846
cmp r11w, dx
jae 0x22dba382a
mov word [rbx + 0x1c], dx
mov r11d, edx
jmp 0x22dba382a
add eax, esi
mov r9d, esi
movzx ecx, ax
jmp 0x22dba3846
mov edx, dword [rsp + 0x74]
jmp 0x22dba339b
cmp qword [rsp + 0x10c0], 0
movzx ecx, word [rbx + 0x1a]
je 0x22dba39b6
mov eax, dword [rbx + 0x44]
cmp dword [rsp + 0x10b8], eax
jae 0x22dba3904
mov rax, qword [rbx + 0x50]
mov rsi, qword [rsp + 0x40]
movzx edx, byte [rax + rsi + 9]
mov r10d, dword [rbx + 0x40]
mov r9, qword [rbx + 0x10]
test r10d, r10d
je 0x22dba3943
mov rax, qword [rbx + 0x48]
sub r10d, 1
movzx r11d, word [rbx + 0x18]
lea r10, [r10 + r10*8]
lea r8, [rax + 0x40]
lea r10, [rax + r10*8 + 0x88]
movzx eax, byte [r8]
add r8, 0x48
imul eax, r11d
lea r9, [r9 + rax*4]
cmp r10, r8
jne 0x22dba392e
mov eax, dword [rsp + 0x10b8]
test eax, eax
je 0x22dba398a
mov eax, dword [rsp + 0x10b8]
mov r10, qword [rbx + 0x50]
movzx r11d, word [rbx + 0x18]
lea esi, [rax - 1]
lea r8, [r10 + 9]
lea rax, [rsi*8]
sub rax, rsi
lea r10, [r10 + rax*8 + 0x41]
movzx eax, byte [r8]
add r8, 0x38
imul eax, r11d
lea r9, [r9 + rax*4]
cmp r8, r10
jne 0x22dba3975
cmp qword [rsp + 0x10c0], r9
je 0x22dba39b6
lea eax, [rdx*4]
mov rdx, r9
imul rax, rcx
mov rcx, qword [rsp + 0x10c0]
mov r8, rax
call sub.msvcrt.dll_memcpy
movzx ecx, word [rbx + 0x1a]
xor r13d, r13d
jmp 0x22dba3806
mov r8d, 0x10fd5
lea rdx, [0x22dd850e0]
lea rcx, str.outputBusIndex__0
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x22dba3244
add eax, esi
mov r9d, esi
movzx ecx, ax
jmp 0x22dba37f1
mov rax, qword [rbx + 8]
mov rax, qword [rax]
test rax, rax
je 0x22dba32a5
lea rcx, [rsp + 0x6c]
lea rdx, [rsp + 0x870]
mov qword [rsp + 0x20], rcx
lea r9, [rsp + 0x80]
lea r8, [rsp + 0x70]
mov rcx, rbx
call rax
cmp esi, dword [rsp + 0x70]
je 0x22dba3a3e
mov r8d, 0x10fe9
lea rdx, [0x22dd850e0]
lea rcx, str.frameCountIn__totalFramesRead
call qword [sym.imp.msvcrt.dll__assert]
mov eax, dword [rsp + 0x6c]
cmp esi, eax
je 0x22dba32a5
mov r8d, 0x10fea
lea rdx, [0x22dd850e0]
lea rcx, str.frameCountOut__totalFramesRead
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x22dba32a5
mov r13d, 0xfffffffe
jmp 0x22dba30d1
xor eax, eax
jmp 0x22dba334f