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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x48
xor ebx, ebx
mov rsi, rcx
cmp byte [0x14008eab8], bl
je 0x140020a80
mov rdi, qword [0x1400b70a0]
cmp dword [rdi + 0x38], 0x8000
mov byte [rdi + 0x3c], 1
jb 0x14002095b
lea rbp, str.Tundra_PrepareNodes
xor r9d, r9d
mov r8d, 0x8000
mov qword [rsp + 0x20], rbp
lea rdx, str.profiler:_max_events___d__reached_on_thread__i___s_and_later_wont_be_recorded
lea ecx, [rbx + 2]
call fcn.140013a20
jmp 0x140020a80
movsxd rax, dword [rdi + 0x38]
inc dword [rdi + 0x38]
lea rcx, [rax + rax*4]
mov rax, qword [rdi + 0x30]
lea r14, [rax + rcx*8]
lea rcx, [rsp + 0x88]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x140020db5
mov rax, qword [rsp + 0x88]
lea rbp, str.Tundra_PrepareNodes
sub rax, qword [0x14008eac8]
xor edx, edx
imul rax, rax, 0xf4240
mov rcx, rbp
div qword [0x14008eac0]
mov edx, 0x20
add rax, qword [0x14008ead0]
mov qword [r14], rax
mov qword [r14 + 0x20], rbx
call fcn.140048fbc
mov r15, rax
test rax, rax
je 0x140020a03
mov r8, rax
mov rdx, rbp
sub r8, rbp
mov rcx, rdi
call fcn.14001e6c0
mov qword [r14 + 0x10], rax
lea rdx, [r15 + 1]
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rdx + r8], bl
jne 0x1400209f0
mov rcx, rdi
call fcn.14001e6c0
jmp 0x140020a7c
mov rax, qword [rdi + 8]
mov rcx, rax
mov rdx, qword [rax + 0x18]
lea rax, [rdx + 0x14]
cmp rax, qword [rcx + 0x10]
jbe 0x140020a28
mov edx, 0x14
mov rcx, rdi
call fcn.140038a30
mov rdx, rbx
mov rax, qword [rdi + 8]
lea rcx, [rdx + 0x14]
mov r8, qword [rax + 0x28]
mov qword [rax + 0x18], rcx
add r8, rdx
mov rax, qword [rdi + 8]
mov rdx, qword [rax + 0x20]
add rdx, qword [rax + 0x18]
mov qword [rdi + 0x10], rdx
movups xmm0, xmmword [str.Tundra_PrepareNodes]
movups xmmword [r8], xmm0
movzx eax, word [0x1400804d8]
mov word [r8 + 0x10], ax
movzx eax, byte [0x1400804da]
mov byte [r8 + 0x12], al
lea rax, [0x14007d7e6]
mov byte [r8 + 0x13], bl
mov qword [r14 + 0x10], r8
mov qword [r14 + 0x18], rax
mov rdx, qword [rsi + 0xb8]
mov eax, ebx
sub eax, dword [rdx + 0x10]
lea rcx, [rdx + 0x10]
movsxd rdi, dword [rcx]
movsxd r15, dword [rdx + 0xc]
add rdi, rcx
movsxd r14, dword [rdx + 8]
lea rcx, [rdx + 0xc]
neg eax
mov qword [rsp + 0x80], r12
mov r12, qword [rsi + 0x138]
sbb rax, rax
mov qword [rsp + 0x40], r13
and rdi, rax
movaps xmmword [rsp + 0x30], xmm6
add r15, rcx
mov qword [rsp + 0x98], rdx
mov rdx, qword [rsi + 0x140]
mov eax, ebx
sub eax, dword [rcx]
mov rcx, qword [rsi + 0x130]
neg eax
movq xmm6, rdi
sbb rax, rax
punpcklqdq xmm6, xmm6
and r15, rax
lea rax, [r12 + r14]
cmp rax, rdx
jbe 0x140020b4a
test rdx, rdx
je 0x140020b04
add rdx, rdx
jmp 0x140020b09
mov edx, 8
lea rax, [r12 + r14]
cmp rdx, rax
lea r13, [r14 + r12]
cmovae r13, rdx
imul rbp, r13, 0x68
lea rdx, [rbp + 8]
test rcx, rcx
jne 0x140020d8f
mov rcx, rdx
call fcn.140053cb4
mov qword [rax], rbp
lock add qword [rsi], rbp
lea rcx, [rax + 8]
mov qword [rsi + 0x140], r13
mov qword [rsi + 0x130], rcx
lea rax, [r12 + r14]
xor edx, edx
imul r13, r12, 0x68
imul r8, r14, 0x68
add r13, rcx
mov qword [rsi + 0x138], rax
mov rcx, r13
call fcn.140070780
mov rax, qword [rsp + 0x98]
mov edx, ebx
movsxd rcx, dword [rax + 8]
test ecx, ecx
jle 0x140020c97
cmp ecx, 4
jb 0x140020c97
cmp dword [0x14008c010], 6
jl 0x140020c97
movdqa xmm3, xmmword [0x140083260]
mov eax, ecx
and eax, 0x80000003
jge 0x140020bae
dec eax
or eax, 0xfffffffc
inc eax
movdqa xmm4, xmmword [0x140083250]
lea r8, [r13 + 0x6c]
mov r9d, ecx
sub r9d, eax
lea eax, [rdx + 2]
movd xmm1, edx
pshufd xmm1, xmm1, 0
lea r8, [r8 + 0x1a0]
movq xmm0, xmm3
paddd xmm1, xmm0
pmovsxdq xmm0, xmm1
vpmullq xmm2, xmm0, xmm4
paddq xmm2, xmm6
movd xmm1, edx
pshufd xmm1, xmm1, 0
movq xmm0, xmm3
paddd xmm1, xmm0
movq qword [r8 - 0x204], xmm2
movd dword [r8 - 0x208], xmm1
movq xmm0, xmm3
psrldq xmm1, 4
movd dword [r8 - 0x1a0], xmm1
psrldq xmm2, 8
movq qword [r8 - 0x19c], xmm2
movd xmm1, eax
lea eax, [rdx + 2]
pshufd xmm1, xmm1, 0
add edx, 4
paddd xmm1, xmm0
pmovsxdq xmm0, xmm1
movd xmm1, eax
pshufd xmm1, xmm1, 0
vpmullq xmm2, xmm0, xmm4
paddq xmm2, xmm6
movq xmm0, xmm3
movq qword [r8 - 0x134], xmm2
paddd xmm1, xmm0
movd dword [r8 - 0x138], xmm1
psrldq xmm1, 4
psrldq xmm2, 8
movd dword [r8 - 0xd0], xmm1
movq qword [r8 - 0xcc], xmm2
cmp edx, r9d
jl 0x140020bc0
movsxd rax, edx
mov rbp, rcx
cmp rax, rcx
jge 0x140020cd6
imul r8, rax, 0x68
movsxd rax, edx
mov r9, rcx
add r8, 4
add r8, r13
sub r9, rax
movsxd rax, edx
mov dword [r8], edx
lea r8, [r8 + 0x68]
imul rcx, rax, 0x94
inc edx
add rcx, rdi
mov qword [r8 - 0x64], rcx
sub r9, 1
jne 0x140020cb6
mov rdx, qword [rsi + 0xc8]
test rdx, rdx
je 0x140020d5e
movsxd r14, dword [rdx + 0xc]
lea rcx, [rdx + 0xc]
movsxd rsi, dword [rdx + 8]
add r14, rcx
mov r12d, dword [rdx + 4]
mov eax, ebx
sub eax, dword [rcx]
lea rcx, [rdx + 8]
neg eax
sbb rax, rax
add rsi, rcx
and r14, rax
mov eax, ebx
sub eax, dword [rcx]
neg eax
sbb rax, rax
and rsi, rax
test rbp, rbp
jle 0x140020d5e
lea rdi, [r13 + 0x10]
nop dword [rax]
movsxd r8, ebx
mov edx, r12d
shl r8, 4
mov rcx, rsi
add r8, r15
call fcn.140006240
test rax, rax
je 0x140020d52
sub rax, rsi
sar rax, 4
movsxd rcx, eax
lea rax, [rcx + rcx*4]
shl rax, 4
add rax, r14
mov qword [rdi], rax
inc ebx
add rdi, 0x68
sub rbp, 1
jne 0x140020d20
cmp byte [0x14008eab8], 0
je 0x140020d6e
xor ecx, ecx
call fcn.14003df60
mov r13, qword [rsp + 0x40]
mov al, 1
mov r12, qword [rsp + 0x80]
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x48
pop r15
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
neg rax
mov qword [rsp + 0x90], rcx
lock add qword [rsi], rax
call fcn.1400587c4
test rax, rax
je 0x140020dc2
jmp 0x140020b31
lea rcx, str.QueryPerformanceCounter_failed
call fcn.1400139a0
int3
mov r8, qword [rsp + 0x90]
lea rcx, str.out_of_memory_reallocating__d_bytes_at__p
mov edx, ebp
call fcn.140013920
int3