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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x568
mov rax, qword [rcx + 0x20]
mov rdi, qword [rax + 8]
mov ebx, edx
mov qword [rsp + 0x88], rdi
mov rdx, qword [rax]
mov rsi, rcx
cmp ebx, 1
je 0x2bbf57997
mov ebp, dword [rax + 0x20]
mov eax, dword [rax + 0x1c]
cmp ebp, eax
cmovge eax, ebp
mov r15d, eax
cmp eax, 0x18
jle 0x2bbf571e7
lea eax, [rax + 1]
cdqe
lea rcx, [rax + rax*4]
mov rax, qword [0x2bc041fd0]
shl rcx, 3
mov rax, qword [rax]
call qword [rax + 0x28]
lea r11, [rsp + 0x150]
lea rcx, [rax + 0x28]
mov qword [rsp + 0x70], rax
mov qword [rax + 0x20], 0
mov rdi, rcx
test ebp, ebp
jle 0x2bbf579aa
mov rcx, qword [rsp + 0x88]
movsxd r8, ebp
mov rdx, rdi
shl r8, 5
mov rax, rcx
add r8, rcx
nop dword [rax]
mov ecx, dword [rax + 4]
movd xmm0, dword [rax]
add rax, 0x20
add rdx, 0x28
mov dword [rdx - 0x18], ecx
movd xmm1, dword [rax - 0x18]
mov rcx, qword [rax - 0x10]
mov qword [rdx - 0x28], 0
punpckldq xmm0, xmm1
mov qword [rdx - 0x10], rcx
movq qword [rdx - 0x20], xmm0
cmp r8, rax
jne 0x2bbf570d8
mov rax, qword [rsp + 0x70]
lea rcx, [rax + 0x28]
cmp r15d, ebp
jle 0x2bbf579b1
mov rdx, qword [rsp + 0x70]
movsxd r8, ebp
lea rax, [r8 + r8*4 + 5]
lea rax, [rdx + rax*8]
mov edx, r15d
sub edx, ebp
add rdx, r8
lea rdx, [rdx + rdx*4]
lea rdx, [rcx + rdx*8]
mov dword [rax + 0x10], 0
add rax, 0x28
mov qword [rax - 0x10], 0
mov qword [rax - 0x20], 0
mov qword [rax - 0x28], 0
cmp rax, rdx
jne 0x2bbf57140
mov rax, qword [rsi + 0x18]
cmp ebx, 2
je 0x2bbf57217
test rax, rax
jne 0x2bbf571a2
jmp 0x2bbf57295
movsxd rcx, ecx
lea rdx, [rcx + rcx*4]
lea rdx, [rdi + rdx*8]
mov rcx, qword [rdx]
mov qword [rax + 0x70], rcx
mov qword [rdx], rax
mov rax, qword [rax + 0x10]
test rax, rax
je 0x2bbf5728a
mov r8d, dword [rax + 0x38]
mov ecx, dword [rax + 0x30]
mov r9, qword [rax]
mov edx, dword [rax + 0x40]
add ecx, r8d
add edx, dword [r9 + 0x138]
add edx, dword [rax + 0x50]
sub ecx, 1
add edx, dword [rax + 0x5c]
mov dword [rax + 0x78], edx
cmp r8d, 1
jg 0x2bbf57180
test ecx, ecx
js 0x2bbf57195
movsxd rcx, ecx
lea rcx, [rcx + rcx*4]
lea rcx, [rdi + rcx*8]
add edx, dword [rcx + 0xc]
cmp edx, dword [rcx + 8]
jle 0x2bbf57195
mov dword [rcx + 8], edx
jmp 0x2bbf57195
lea r11, [rsp + 0x150]
lea rdi, [rsp + 0x178]
mov qword [rsp + 0x170], 0
mov qword [rsp + 0x70], r11
test ebp, ebp
jg 0x2bbf570b9
xor ebp, ebp
jmp 0x2bbf5710d
test rax, rax
jne 0x2bbf5723e
jmp 0x2bbf57295
movsxd rcx, ecx
lea rdx, [rcx + rcx*4]
lea rdx, [rdi + rdx*8]
mov rcx, qword [rdx]
mov qword [rax + 0x70], rcx
mov qword [rdx], rax
mov rax, qword [rax + 0x10]
test rax, rax
je 0x2bbf5728a
mov r8d, dword [rax + 0x3c]
mov ecx, dword [rax + 0x34]
mov r9, qword [rax]
mov edx, dword [rax + 0x44]
add ecx, r8d
add edx, dword [r9 + 0x13c]
add edx, dword [rax + 0x54]
sub ecx, 1
add edx, dword [rax + 0x5c]
mov dword [rax + 0x78], edx
cmp r8d, 1
jg 0x2bbf57220
test ecx, ecx
js 0x2bbf57235
movsxd rcx, ecx
lea rcx, [rcx + rcx*4]
lea rcx, [rdi + rcx*8]
add edx, dword [rcx + 0xc]
cmp edx, dword [rcx + 8]
jle 0x2bbf57235
mov rax, qword [rax + 0x10]
mov dword [rcx + 8], edx
test rax, rax
jne 0x2bbf5723e
xor esi, esi
test r15d, r15d
jle 0x2bbf5789f
mov rsi, qword [rsp + 0x70]
movsxd r14, r15d
mov qword [rsp + 0x28], rdi
xor ebp, ebp
lea rax, [r14 + r14*4]
mov qword [rsp + 0x38], r14
lea r10, [rsi + rax*8 + 0x30]
lea r13, [rsi + 0x30]
mov esi, 0xa
mov dword [rsp + 0x5b8], ebx
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x30], r13
mov rdi, r10
mov r14d, esi
mov qword [rsp + 0x20], rax
mov r12, rax
mov qword [rsp + 0x40], r11
jmp 0x2bbf572f1
add r13, 0x28
cmp rdi, r13
je 0x2bbf5735f
mov rdx, qword [r13 + 0x10]
test rdx, rdx
je 0x2bbf572e8
xor esi, esi
test ebp, ebp
jle 0x2bbf57703
xor eax, eax
jmp 0x2bbf5731f
add eax, 1
add rsi, 0x10
cmp eax, ebp
je 0x2bbf576fc
cmp rdx, qword [r12 + rsi]
jne 0x2bbf57310
cmp eax, ebp
jge 0x2bbf57703
add rsi, r12
mov r8d, dword [rsi + 8]
mov ecx, dword [r13 + 8]
mov eax, 1
test ecx, ecx
cmovle ecx, eax
mov eax, dword [r13]
add eax, ecx
sub eax, 1
cdq
idiv ecx
cmp eax, r8d
jle 0x2bbf572e8
add r13, 0x28
mov dword [rsi + 8], eax
cmp rdi, r13
jne 0x2bbf572f1
mov r10, rdi
mov r13, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x28]
mov ebx, dword [rsp + 0x5b8]
mov r14, qword [rsp + 0x38]
mov r11, qword [rsp + 0x40]
test ebp, ebp
jle 0x2bbf573d7
movsxd rdx, ebp
shl rdx, 4
add rdx, r12
jmp 0x2bbf57396
add r13, 0x28
cmp r10, r13
je 0x2bbf573d7
mov rcx, qword [r13 + 0x10]
test rcx, rcx
je 0x2bbf5738d
mov rax, r12
jmp 0x2bbf573b1
add rax, 0x10
cmp rdx, rax
je 0x2bbf5738d
cmp rcx, qword [rax]
jne 0x2bbf573a8
mov ecx, dword [r13 + 8]
mov r8d, 1
test ecx, ecx
cmovle ecx, r8d
imul ecx, dword [rax + 8]
add r13, 0x28
mov dword [r13 - 0x28], ecx
cmp r10, r13
jne 0x2bbf57396
mov rax, qword [rsp + 0x20]
lea ebp, [r15 - 1]
cmp r12, rax
je 0x2bbf573ff
mov rax, qword [0x2bc041fd0]
mov qword [rsp + 0x20], r11
mov rcx, r12
mov rax, qword [rax]
call qword [rax + 0x30]
mov r11, qword [rsp + 0x20]
mov r8, rdi
xor esi, esi
xor ecx, ecx
nop word cs:[rax + rax]
mov rax, qword [r8]
add esi, dword [r8 + 8]
mov dword [r8 + 0x20], esi
test rax, rax
je 0x2bbf57453
cmp ebx, 1
mov r9d, dword [rax + 0x3c]
cmove r9d, dword [rax + 0x38]
mov edx, ecx
sub edx, r9d
movsxd rdx, edx
lea r9, [rdx + rdx*4]
mov edx, dword [rax + 0x78]
add edx, dword [rdi + r9*8 + 0x20]
cmp edx, esi
jle 0x2bbf5744a
mov dword [r8 + 0x20], edx
mov esi, edx
mov rax, qword [rax + 0x70]
test rax, rax
jne 0x2bbf57420
add ecx, 1
add r8, 0x28
cmp r15d, ecx
jne 0x2bbf57410
mov rcx, qword [rsp + 0x70]
lea rdx, [r14 + r14*4]
xor r8d, r8d
test esi, esi
cmovns r8d, esi
lea rdx, [rcx + rdx*8 + 0x4c]
lea rax, [rcx + 0x4c]
mov rcx, rdx
sub rcx, rax
and ecx, 8
je 0x2bbf57496
mov dword [rax], r8d
mov rax, qword [rsp + 0x70]
add rax, 0x74
cmp rdx, rax
je 0x2bbf574a6
mov dword [rax], r8d
add rax, 0x50
mov dword [rax - 0x28], r8d
cmp rdx, rax
jne 0x2bbf57496
test ebp, ebp
je 0x2bbf57527
mov rcx, qword [rsp + 0x70]
lea rax, [r14 + r14*4]
lea r9, [rcx + rax*8]
nop word [rax + rax]
mov rax, qword [r9]
test rax, rax
je 0x2bbf57505
nop dword [rax + rax]
mov edx, dword [rax + 0x3c]
cmp ebx, 1
cmove edx, dword [rax + 0x38]
mov ecx, ebp
sub ecx, edx
js 0x2bbf574fc
movsxd rdx, ecx
mov r10d, r8d
sub r10d, dword [rax + 0x78]
lea rdx, [rdx + rdx*4]
lea rdx, [rdi + rdx*8]
cmp r10d, dword [rdx + 0x24]
jge 0x2bbf574fc
mov dword [rdx + 0x24], r10d
mov rax, qword [rax + 0x70]
test rax, rax
jne 0x2bbf574d0
mov eax, r8d
mov r8d, dword [r9 - 4]
sub eax, dword [r9 + 8]
sub ebp, 1
cmp eax, r8d
jg 0x2bbf5751f
mov dword [r9 - 4], eax
mov r8d, eax
sub r9, 0x28
test ebp, ebp
jne 0x2bbf574c0
mov r10, qword [rsp + 0x70]
mov qword [rsp + 0x68], rdi
mov ecx, r15d
mov dword [rsp + 0x20], 0
lea rax, [r10 - 4]
lea rbx, [r10 + 0x48]
mov dword [rsp + 0xa4], esi
mov qword [rsp + 0x78], rax
lea rax, [r10 + 0x58]
mov r15, rbx
mov qword [rsp + 0x80], rax
lea rax, [r14 + r14*4]
lea rax, [rdi + rax*8]
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0x90], rax
mov qword [rsp + 0xa8], r11
nop
movsxd r9, dword [rsp + 0x20]
mov rbx, qword [rsp + 0x68]
lea rax, [r9 + r9*4]
lea r13d, [r9 + 1]
mov edi, dword [rbx + rax*8 + 0x24]
lea r8, [rax*8]
cmp dword [rbx + rax*8 + 0x20], edi
je 0x2bbf57954
mov eax, dword [rbx + r8 + 0x4c]
cmp ecx, r13d
jle 0x2bbf575d8
lea rdx, [r10 + r8 + 0x70]
jmp 0x2bbf575d1
add r13d, 1
add rdx, 0x28
cmp ecx, r13d
je 0x2bbf57987
mov eax, dword [rdx + 4]
cmp dword [rdx], eax
jne 0x2bbf575c0
mov ebx, dword [r10 + r8 + 0x20]
sub eax, ebx
mov dword [rsp + 0x38], ebx
mov ebx, dword [rsp + 0x20]
mov dword [rsp + 0x28], eax
cmp ebx, r13d
jg 0x2bbf5796a
mov r11d, r13d
lea rax, [r8 + 0x30]
xor r14d, r14d
sub r11d, ebx
mov rbx, qword [rsp + 0x80]
lea rdx, [r10 + rax]
add r11, r9
lea r11, [r11 + r11*4]
lea r11, [rbx + r11*8]
xor ebx, ebx
nop word [rax + rax]
add ebx, dword [rdx + 8]
add r14d, dword [rdx]
add rdx, 0x28
cmp rdx, r11
jne 0x2bbf57620
xor ebp, ebp
test ebx, ebx
je 0x2bbf57971
add rax, r10
mov qword [rsp + 0x48], r10
mov r10d, dword [rsp + 0x20]
lea edi, [rbx + rbx*2]
mov dword [rsp + 0xa0], edi
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x40], ecx
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x50], r15
cmp r10d, r13d
jg 0x2bbf57901
mov r12d, dword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
xor esi, esi
xor r9d, r9d
mov ecx, dword [rsp + 0x38]
sub r12d, r14d
jmp 0x2bbf576d8
add r9d, 1
mov edi, ebp
mov eax, r9d
imul eax, r12d
cdq
idiv ebx
mov edx, eax
sub edx, esi
mov esi, eax
lea eax, [rcx + r11]
mov r15d, dword [r8 + 0x1c]
add eax, edx
cmp eax, r15d
jg 0x2bbf578d0
mov eax, dword [r8 + 0x18]
add edx, r11d
add ecx, edx
cmp ecx, eax
cmovl ecx, eax
add r10d, 1
add r8, 0x28
cmp r10d, r13d
jg 0x2bbf57780
mov r11d, dword [r8]
test ebp, ebp
jne 0x2bbf57690
mov edi, dword [r8 + 8]
add r9d, edi
mov eax, r9d
imul eax, r12d
cdq
idiv ebx
mov edx, eax
sub edx, esi
mov esi, eax
test edi, edi
jle 0x2bbf576b9
jmp 0x2bbf576a6
movsxd rsi, ebp
shl rsi, 4
cmp ebp, r14d
jl 0x2bbf57760
mov rax, qword [0x2bc041fd0]
movsxd r8, r14d
add r14d, 0xa
shl r8, 4
mov rax, qword [rax]
lea rcx, [r8 + 0xa0]
mov qword [rsp + 0x48], r8
call qword [rax + 0x28]
mov r8, qword [rsp + 0x48]
mov rdx, r12
mov rcx, rax
mov rbx, rax
call sym.memcpy
mov rax, qword [rsp + 0x20]
cmp r12, rax
je 0x2bbf57759
mov rax, qword [0x2bc041fd0]
mov rcx, r12
mov rax, qword [rax]
call qword [rax + 0x30]
mov rdx, qword [r13 + 0x10]
mov r12, rbx
add rsi, r12
add ebp, 1
xor r8d, r8d
mov qword [rsi], rdx
mov dword [rsi + 8], 0
jmp 0x2bbf57334
mov eax, dword [rsp + 0x20]
mov r12d, r13d
mov r9, qword [rsp + 0x58]
xor esi, esi
mov r10, qword [rsp + 0x48]
mov r8, qword [rsp + 0x60]
sub r12d, eax
mov r15, qword [rsp + 0x50]
mov r11d, dword [rsp + 0x28]
mov eax, r12d
mov ecx, dword [rsp + 0x40]
lea r8, [r10 + r8 + 0x20]
add rax, r9
sub r11d, r14d
xor r9d, r9d
lea rax, [rax + rax*4]
lea rdi, [r15 + rax*8]
jmp 0x2bbf577ca
mov esi, eax
mov eax, ebp
test ebp, ebp
jne 0x2bbf577d4
mov eax, dword [r8 + 0x18]
add r9d, eax
mov eax, r9d
imul eax, r11d
cdq
idiv ebx
mov edx, eax
sub edx, esi
add edx, dword [r8 + 0x10]
mov dword [r8 + 0x10], edx
add edx, dword [r8]
cmp dword [r8 + 0x28], edx
jge 0x2bbf577fa
mov dword [r8 + 0x28], edx
add r8, 0x28
cmp rdi, r8
jne 0x2bbf577c8
cmp dword [rsp + 0x20], r13d
jge 0x2bbf5784d
movsxd r13, r13d
mov rbx, qword [rsp + 0x78]
lea rdx, [r13 + r13*4]
shl rdx, 3
lea r8, [rbx + rdx]
lea rax, [r10 + rdx + 0x24]
lea edx, [r12 - 1]
lea rdx, [rdx + rdx*4]
shl rdx, 3
sub r8, rdx
nop dword [rax]
mov edx, dword [rax + 0x28]
sub edx, dword [rax + 0xc]
cmp edx, dword [rax]
jge 0x2bbf57844
mov dword [rax], edx
sub rax, 0x28
cmp r8, rax
jne 0x2bbf57838
mov eax, dword [rsp + 0x20]
cmp ecx, eax
jg 0x2bbf57580
mov r15d, ecx
mov rcx, qword [rsp + 0x88]
mov esi, dword [rsp + 0xa4]
xor edx, edx
mov r11, qword [rsp + 0xa8]
mov rax, qword [rsp + 0x98]
add rcx, 0x18
nop dword [rax]
mov r8d, dword [rax]
add edx, 1
add rax, 0x28
add rcx, 0x20
mov dword [rcx - 0x20], r8d
cmp r15d, edx
jg 0x2bbf57888
mov rcx, qword [rsp + 0x70]
cmp rcx, r11
je 0x2bbf578b6
mov rax, qword [0x2bc041fd0]
mov rax, qword [rax]
call qword [rax + 0x30]
mov eax, esi
add rsp, 0x568
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, r15d
sub eax, r11d
sub eax, ecx
imul eax, ebx
cdq
idiv edi
cmp ebx, eax
jge 0x2bbf578e8
cdq
idiv ebx
imul eax, ebx
test eax, eax
jle 0x2bbf57920
mov r10d, dword [rsp + 0x20]
add eax, r14d
mov dword [rsp + 0x28], eax
cmp r10d, r13d
jle 0x2bbf57671
mov ecx, dword [rsp + 0x40]
mov eax, dword [rsp + 0x20]
mov r10, qword [rsp + 0x48]
mov r15, qword [rsp + 0x50]
cmp ecx, eax
jg 0x2bbf57580
jmp 0x2bbf57859
mov edi, dword [rsp + 0xa0]
lea eax, [r12 - 1]
cmp eax, edi
jle 0x2bbf5793e
lea edx, [rax + rax*2]
test edx, edx
lea eax, [rdx + 3]
cmovns eax, edx
sar eax, 2
cmp ebx, eax
jge 0x2bbf57948
cdq
idiv ebx
imul eax, ebx
test eax, eax
mov edx, 1
cmovle eax, edx
jmp 0x2bbf578ec
mov dword [rsp + 0x20], r13d
mov eax, dword [rsp + 0x20]
cmp ecx, eax
jg 0x2bbf57580
jmp 0x2bbf57859
xor r14d, r14d
lea rax, [r8 + 0x30]
mov edi, dword [rsp + 0x20]
mov ebx, r13d
mov ebp, 1
sub ebx, edi
add ebx, 1
jmp 0x2bbf57639
mov rax, qword [rsp + 0x90]
mov eax, dword [rax + 0x24]
jmp 0x2bbf575d8
mov ebp, dword [rax + 0x14]
mov eax, dword [rax + 0x10]
mov qword [rsp + 0x88], rdx
jmp 0x2bbf5706a
xor ebp, ebp
jmp 0x2bbf5711f
mov rax, qword [rsi + 0x18]
cmp ebx, 2
jne 0x2bbf57199
test rax, rax
jne 0x2bbf5723e
jmp 0x2bbf5728a