Function at 0x2e3d03850
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.2e3e473f0
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 0x2e3d04259
mov eax, dword [rcx + 0x44]
cmp edx, eax
jae 0x2e3d04259
mov eax, dword [rcx + 0x20]
cmp eax, 1
je 0x2e3d038be
mov rax, qword [rcx + 0x28]
cmp qword [rsp + 0x10d8], rax
jae 0x2e3d038d8
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 0x2e3d038be
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 0x2e3d03ba7
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 0x2e3d039b7
mov eax, dword [rsp + 0x3c]
xor r8d, r8d
cmp dword [rsp + 0x10b8], eax
jae 0x2e3d0396d
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 0x2e3d039b3
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 0x2e3d039d4
cmp dword [rsp + 0x3c], 1
je 0x2e3d03e01
test byte [rax + 0x14], 1
je 0x2e3d03bc8
mov edi, dword [rsp + 0x3c]
cmp dword [rsp + 0x4c], edi
je 0x2e3d03a02
mov r8d, 0x10fd3
lea rdx, [0x2e3ee21b0]
lea rcx, str.outputBusCount__inputBusCount
call qword [sym.imp.msvcrt.dll__assert]
cmp dword [rsp + 0x3c], 1
je 0x2e3d03a23
mov r8d, 0x10fd4
lea rdx, [0x2e3ee21b0]
lea rcx, str.outputBusCount__1
call qword [sym.imp.msvcrt.dll__assert]
mov r14d, dword [rsp + 0x10b8]
test r14d, r14d
jne 0x2e3d041ae
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.2e3d04270
mov r13d, eax
test eax, eax
jne 0x2e3d03a95
mov esi, dword [rsp + 0x74]
mov dword [rsp + 0x70], esi
mov dword [rsp + 0x6c], esi
test esi, esi
jne 0x2e3d041da
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 0x2e3d040be
cmp qword [rsp + 0x10c0], 0
mov edx, dword [rsp + 0x74]
movd xmm1, ecx
je 0x2e3d03b8b
comiss xmm1, dword [0x2e3ee26c4]
je 0x2e3d03b8b
mov rax, qword [rbx + 0x50]
movzx r8d, byte [rax + rsi + 9]
imul r8d, edx
test r8, r8
je 0x2e3d03b8b
lea rax, [r8 - 1]
cmp rax, 2
jbe 0x2e3d04264
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 0x2e3d03b20
mov rax, r8
and rax, 0xfffffffffffffffc
cmp r8, rax
je 0x2e3d03b8b
sub r8, rax
cmp r8, 1
je 0x2e3d03b77
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 0x2e3d03b8b
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 0x2e3d038c1
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 0x2e3d039ba
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 0x2e3d03bf8
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 0x2e3d03c00
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 0x2e3d040c7
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 0x2e3d03cf9
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 0x2e3d03ca4
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 0x2e3d03c90
test r8, r8
je 0x2e3d03ce4
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 0x2e3d03cd0
mov qword [rdi + r8*8], rdx
add r8, 1
add r9, 0x38
cmp r8, rbp
jne 0x2e3d03c58
movzx r11d, word [rbx + 0x1c]
test r11w, r11w
jne 0x2e3d03e71
mov edi, dword [rsp + 0x4c]
test edi, edi
je 0x2e3d03f04
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.2e3d04270
mov edi, eax
test eax, eax
jne 0x2e3d03e58
mov eax, dword [rsp + 0x7c]
cmp esi, eax
cmovb esi, eax
mov r10d, dword [rsp + 0x78]
cmp r10d, eax
jbe 0x2e3d03dbb
cmp dword [rbx + 0x40], r14d
jbe 0x2e3d03e67
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 0x2e3d03efe
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 0x2e3d03de0
add r14, 1
add r13, 0x48
jmp 0x2e3d03d40
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 0x2e3d03e47
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 0x2e3d03a95
mov dword [rsp + 0x7c], 0
xor eax, eax
jmp 0x2e3d03d7a
xor r8d, r8d
xor ecx, ecx
jmp 0x2e3d03db0
mov ebp, dword [rsp + 0x4c]
test ebp, ebp
je 0x2e3d03f0f
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 0x2e3d03eb6
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 0x2e3d03f0f
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 0x2e3d03ee0
add r10, 1
add rsi, 0x48
jmp 0x2e3d03ea0
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 0x2e3d03f59
mov esi, dword [rbx + 0x44]
xor ecx, ecx
cmp dword [rsp + 0x10b8], esi
jae 0x2e3d03f3d
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 0x2e3d0400e
mov r9d, dword [rsp + 0x78]
and r10d, 4
mov dword [rsp + 0x70], r9d
mov edx, r9d
je 0x2e3d0409b
mov r10d, dword [rbx + 0x1c]
test r10d, r10d
jne 0x2e3d0409b
cmp r11w, r9w
jae 0x2e3d03fa7
mov word [rbx + 0x1c], r9w
mov r10, qword [r8]
test r10, r10
je 0x2e3d041cd
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 0x2e3d03ff6
or r9d, dword [rsp + 0x70]
jne 0x2e3d03c2c
mov rax, qword [rbx + 0x50]
mov rsi, qword [rsp + 0x40]
mov dword [rsp + 0x74], ecx
lock or dword [rax + rsi + 0xc], 1
jmp 0x2e3d03a95
movzx r9d, r11w
mov edx, r11d
mov dword [rsp + 0x70], r9d
test r9d, r9d
jne 0x2e3d04050
mov r9d, dword [r8 + 0x14]
and r9d, 8
jne 0x2e3d04050
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 0x2e3d03fe1
mov r10, qword [r8]
test r10, r10
je 0x2e3d040b1
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 0x2e3d04036
cmp r11w, dx
jae 0x2e3d0401a
mov word [rbx + 0x1c], dx
mov r11d, edx
jmp 0x2e3d0401a
add eax, esi
mov r9d, esi
movzx ecx, ax
jmp 0x2e3d04036
mov edx, dword [rsp + 0x74]
jmp 0x2e3d03b8b
cmp qword [rsp + 0x10c0], 0
movzx ecx, word [rbx + 0x1a]
je 0x2e3d041a6
mov eax, dword [rbx + 0x44]
cmp dword [rsp + 0x10b8], eax
jae 0x2e3d040f4
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 0x2e3d04133
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 0x2e3d0411e
mov eax, dword [rsp + 0x10b8]
test eax, eax
je 0x2e3d0417a
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 0x2e3d04165
cmp qword [rsp + 0x10c0], r9
je 0x2e3d041a6
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 0x2e3d03ff6
mov r8d, 0x10fd5
lea rdx, [0x2e3ee21b0]
lea rcx, str.outputBusIndex__0
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x2e3d03a34
add eax, esi
mov r9d, esi
movzx ecx, ax
jmp 0x2e3d03fe1
mov rax, qword [rbx + 8]
mov rax, qword [rax]
test rax, rax
je 0x2e3d03a95
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 0x2e3d0422e
mov r8d, 0x10fe9
lea rdx, [0x2e3ee21b0]
lea rcx, str.frameCountIn__totalFramesRead
call qword [sym.imp.msvcrt.dll__assert]
mov eax, dword [rsp + 0x6c]
cmp esi, eax
je 0x2e3d03a95
mov r8d, 0x10fea
lea rdx, [0x2e3ee21b0]
lea rcx, str.frameCountOut__totalFramesRead
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x2e3d03a95
mov r13d, 0xfffffffe
jmp 0x2e3d038c1
xor eax, eax
jmp 0x2e3d03b3f