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

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1b8]
sub rsp, 0x2b8
mov eax, edx
mov rdi, rcx
add rax, rax
mov ebx, edx
mov qword [rsp + 0x48], rbx
mov r10d, dword [rcx + rax*8 + 0x158]
test r10d, r10d
je 0x140021aa5
mov r11, qword [rcx + 0x88]
lea rax, [rbp - 0x60]
mov qword [rsp + 0x70], r11
xorps xmm0, xmm0
mov byte [rbp - 0x60], 0
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x70], 0x207
mov qword [rbp - 0x68], rax
movups xmmword [rbp - 0x80], xmm0
mov byte [rbp - 0x80], 0x20
test r11, r11
je 0x140021209
mov r9d, dword [rcx + rbx*4 + 0x118]
mov edx, r9d
mov eax, r9d
mov dword [rsp + 0x20], r10d
shr eax, 1
and eax, 0x55555555
sub edx, eax
mov ecx, edx
and edx, 0x33333333
shr ecx, 2
and ecx, 0x33333333
add ecx, edx
lea rdx, str._RAPass::BinPack__Available_u__0x_08X__Count_u_n
mov eax, ecx
shr eax, 4
add eax, ecx
mov rcx, r11
and eax, 0xf0f0f0f
imul r8d, eax, 0x1010101
shr r8d, 0x18
call sym.phoenix_rainbow_loader.exe_public:_unsigned_int___cdecl_asmjit::Logger::logf_char_const____ptr64____ptr64
xor r12d, r12d
lea rax, [rbx + rdi]
lea rsi, [rbx + 0x15]
mov qword [rsp + 0x78], rax
movzx eax, byte [rax + 0x10c]
mov r13d, r12d
shl rsi, 4
mov r14d, r12d
add rsi, rdi
mov dword [rsp + 0x58], eax
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x60], r12
mov dword [rbp + 0x208], r12d
mov ebx, dword [rsi + 8]
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], r12
test ebx, ebx
je 0x1400212c7
lea rdx, [rdi + 0x18]
mov r9d, ebx
lea r8d, [r12 + 8]
lea rcx, [rsp + 0x60]
call sym.phoenix_rainbow_loader.exe_protected:_unsigned_int___cdecl_asmjit::ZoneVectorBase::_grow_class_asmjit::ZoneAllocator____ptr64__unsigned_int__unsigned_int____ptr64
mov edi, eax
test eax, eax
je 0x14002128a
cmp byte [rbp - 0x80], 0x1f
jne 0x140021283
mov rcx, qword [rbp - 0x68]
call fcn.1400867c0
mov eax, edi
jmp 0x140021aa7
mov r13, qword [rsp + 0x60]
mov r8, rbx
mov r14d, dword [rsp + 0x68]
mov rdx, qword [rsi]
mov rdi, qword [rbp + 0x200]
mov eax, r14d
shl r8, 3
mov qword [rsp + 0x50], r13
lea rcx, [rax*8]
add rcx, r13
call fcn.140081640
add r14d, ebx
mov dword [rbp + 0x208], r14d
mov edx, r14d
mov rcx, r13
call fcn.1400237f0
mov rdx, qword [rsp + 0x48]
mov eax, r14d
mov dword [rbp + 0x210], eax
mov r8d, dword [rdi + rdx*4 + 0x118]
mov dword [rsp + 0x40], r8d
test r14d, r14d
je 0x1400217de
mov dword [rbp + 0x210], r12d
mov esi, r12d
mov r13d, r12d
test eax, eax
je 0x140021497
mov rax, qword [rsp + 0x50]
mov qword [rbp + 0x218], rax
nop word [rax + rax]
mov r15, qword [rax]
movzx r12d, byte [r15 + 0x3b]
cmp r12b, 0xff
je 0x140021452
mov eax, r12d
bt r8d, eax
jae 0x140021452
mov r9d, dword [r15 + 0x48]
mov r14d, eax
mov ebx, dword [r15 + 4]
shl r14, 4
add r14, qword [rdi + rdx*8 + 0x1a8]
add r9d, dword [r14 + 8]
cmp r9d, dword [rsp + 0x3c]
jbe 0x140021389
lea rdx, [rdi + 0x18]
mov r8d, 0xc
lea rcx, [rsp + 0x30]
call sym.phoenix_rainbow_loader.exe_protected:_unsigned_int___cdecl_asmjit::ZoneVectorBase::_reserve_class_asmjit::ZoneAllocator____ptr64__unsigned_int__unsigned_int____ptr64
mov edi, eax
test eax, eax
je 0x140021389
cmp eax, 0xffffffff
jne 0x140021274
jmp 0x14002144b
mov eax, dword [r14 + 8]
mov r11, qword [r14]
mov r10, qword [r15 + 0x40]
mov r8, qword [rsp + 0x30]
lea rcx, [rax + rax*2]
mov r9, r8
mov eax, dword [r15 + 0x48]
lea rsi, [r11 + rcx*4]
lea rcx, [rax + rax*2]
lea rdi, [r10 + rcx*4]
cmp r11, rsi
je 0x14002157b
cmp r10, rdi
je 0x140021550
mov edx, dword [r11]
mov ecx, dword [r10 + 4]
cmp ecx, edx
ja 0x1400213f7
nop dword [rax]
mov eax, dword [r10]
add r10, 0xc
mov dword [r9], eax
mov dword [r9 + 4], ecx
mov dword [r9 + 8], ebx
add r9, 0xc
cmp r10, rdi
je 0x140021550
mov ecx, dword [r10 + 4]
cmp ecx, edx
jbe 0x1400213d0
mov r8d, dword [r10]
mov edx, dword [r11 + 4]
cmp edx, r8d
ja 0x14002143c
nop dword [rax]
nop word [rax + rax]
mov eax, dword [r11]
mov rcx, r9
add r9, 0xc
mov dword [rcx], eax
mov dword [rcx + 4], edx
mov eax, dword [r11 + 8]
add r11, 0xc
mov dword [rcx + 8], eax
cmp r11, rsi
je 0x140021576
mov edx, dword [r11 + 4]
cmp edx, r8d
jbe 0x140021410
mov edx, dword [r11]
cmp dword [r10 + 4], edx
jbe 0x1400213c5
mov esi, dword [rbp + 0x210]
mov r14d, dword [rbp + 0x208]
mov rcx, qword [rsp + 0x50]
mov eax, esi
inc esi
mov dword [rbp + 0x210], esi
mov qword [rcx + rax*8], r15
mov rax, qword [rbp + 0x218]
inc r13d
mov rdi, qword [rbp + 0x200]
add rax, 8
mov rdx, qword [rsp + 0x48]
mov r8d, dword [rsp + 0x40]
mov qword [rbp + 0x218], rax
cmp r13d, r14d
jb 0x140021320
xor r12d, r12d
mov dword [rbp + 0x208], esi
test esi, esi
je 0x1400217de
mov rax, qword [rsp + 0x50]
mov ecx, r12d
mov dword [rbp + 0x218], ecx
mov r14d, r12d
mov qword [rsp + 0x60], rax
mov dword [rbp + 0x208], r12d
nop dword [rax]
nop word [rax + rax]
mov r13, qword [rax]
mov r14d, r8d
test r8d, r8d
je 0x1400217b8
nop
mov eax, dword [r13 + 0x2c]
bsf r12d, r14d
test eax, eax
je 0x1400214f5
and eax, r14d
je 0x1400214f5
bsf r12d, eax
mov r9d, dword [r13 + 0x48]
mov ebx, dword [r13 + 4]
mov r15d, r12d
shl r15, 4
add r15, qword [rdi + rdx*8 + 0x1a8]
add r9d, dword [r15 + 8]
cmp r9d, dword [rsp + 0x3c]
jbe 0x1400215f9
lea rdx, [rdi + 0x18]
mov r8d, 0xc
lea rcx, [rsp + 0x30]
call sym.phoenix_rainbow_loader.exe_protected:_unsigned_int___cdecl_asmjit::ZoneVectorBase::_reserve_class_asmjit::ZoneAllocator____ptr64__unsigned_int__unsigned_int____ptr64
mov edi, eax
test eax, eax
je 0x1400215f9
cmp eax, 0xffffffff
jne 0x140021274
jmp 0x1400216a2
mov r8, r11
mov rdx, r9
add r11, 0xc
add r9, 0xc
mov eax, dword [r8]
mov ecx, dword [r8 + 4]
mov dword [rdx], eax
mov dword [rdx + 4], ecx
mov eax, dword [r8 + 8]
mov dword [rdx + 8], eax
cmp r11, rsi
jne 0x140021550
mov r8, qword [rsp + 0x30]
cmp r10, rdi
je 0x14002159f
mov ecx, dword [r10 + 4]
mov eax, dword [r10]
add r10, 0xc
mov dword [r9], eax
mov dword [r9 + 4], ecx
mov dword [r9 + 8], ebx
add r9, 0xc
cmp r10, rdi
jne 0x140021580
mov esi, dword [rbp + 0x210]
sub r9, r8
mov byte [r15 + 0x3a], r12b
movabs rax, 0x2aaaaaaaaaaaaaab
mov ecx, dword [r14 + 0xc]
imul r9
sar rdx, 1
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov rax, qword [r14]
mov qword [rsp + 0x30], rax
mov eax, dword [r14 + 8]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x3c]
mov dword [r14 + 0xc], eax
mov qword [r14], r8
mov dword [r14 + 8], edx
mov r14d, dword [rbp + 0x208]
mov dword [rsp + 0x3c], ecx
jmp 0x140021465
mov eax, dword [r15 + 8]
mov r11, qword [r15]
mov r10, qword [r13 + 0x40]
mov r8, qword [rsp + 0x30]
lea rdx, [rax + rax*2]
mov rcx, r8
mov eax, dword [r13 + 0x48]
lea rsi, [r11 + rdx*4]
lea rdx, [rax + rax*2]
lea rdi, [r10 + rdx*4]
cmp r11, rsi
je 0x1400216ee
cmp r10, rdi
je 0x1400216c0
mov r8d, dword [r11]
mov edx, dword [r10 + 4]
cmp edx, r8d
ja 0x140021661
nop
mov eax, dword [r10]
add r10, 0xc
mov dword [rcx], eax
mov dword [rcx + 4], edx
mov dword [rcx + 8], ebx
add rcx, 0xc
cmp r10, rdi
je 0x1400216c0
mov edx, dword [r10 + 4]
cmp edx, r8d
jbe 0x140021640
mov r9d, dword [r10]
mov r8d, dword [r11 + 4]
cmp r8d, r9d
ja 0x140021699
nop dword [rax]
mov eax, dword [r11]
mov rdx, rcx
add rcx, 0xc
mov dword [rdx], eax
mov dword [rdx + 4], r8d
mov eax, dword [r11 + 8]
add r11, 0xc
mov dword [rdx + 8], eax
cmp r11, rsi
je 0x1400216e9
mov r8d, dword [r11 + 4]
cmp r8d, r9d
jbe 0x140021670
mov r8d, dword [r11]
cmp dword [r10 + 4], r8d
jbe 0x140021635
btc r14d, r12d
test r14d, r14d
je 0x1400217ac
mov rdi, qword [rbp + 0x200]
mov rdx, qword [rsp + 0x48]
jmp 0x1400214e0
mov r9, r11
mov r8, rcx
add r11, 0xc
add rcx, 0xc
mov eax, dword [r9]
mov edx, dword [r9 + 4]
mov dword [r8], eax
mov dword [r8 + 4], edx
mov eax, dword [r9 + 8]
mov dword [r8 + 8], eax
cmp r11, rsi
jne 0x1400216c0
mov r8, qword [rsp + 0x30]
cmp r10, rdi
je 0x14002171c
nop dword [rax]
nop word [rax + rax]
mov edx, dword [r10 + 4]
mov eax, dword [r10]
add r10, 0xc
mov dword [rcx], eax
mov dword [rcx + 4], edx
mov dword [rcx + 8], ebx
add rcx, 0xc
cmp r10, rdi
jne 0x140021700
mov esi, dword [rbp + 0x210]
sub rcx, r8
mov byte [r13 + 0x3a], r12b
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
mov ecx, dword [r15 + 0xc]
sar rdx, 1
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov rax, qword [r15]
mov qword [rsp + 0x30], rax
mov eax, dword [r15 + 8]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x3c], ecx
mov ecx, dword [rbp + 0x218]
mov qword [r15], r8
mov dword [r15 + 8], edx
mov dword [r15 + 0xc], eax
test r14d, r14d
je 0x1400217b8
mov r14d, dword [rbp + 0x208]
mov rax, qword [rsp + 0x60]
inc ecx
add rax, 8
mov dword [rbp + 0x218], ecx
mov qword [rsp + 0x60], rax
cmp ecx, esi
jae 0x1400217d4
mov rdi, qword [rbp + 0x200]
mov rdx, qword [rsp + 0x48]
mov r8d, dword [rsp + 0x40]
jmp 0x1400214d0
mov ecx, dword [rbp + 0x218]
mov esi, dword [rbp + 0x210]
mov r14d, dword [rbp + 0x208]
mov rdx, qword [rsp + 0x50]
mov qword [rdx + r14*8], r13
inc r14d
mov dword [rbp + 0x208], r14d
jmp 0x14002177c
xor r12d, r12d
mov dword [rbp + 0x210], r14d
mov rdi, qword [rsp + 0x70]
test rdi, rdi
je 0x140021924
cmp dword [rsp + 0x58], 0
mov r14d, r12d
jbe 0x140021924
mov r13, qword [rbp + 0x200]
mov r15, r12
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rsp + 0x48]
mov rsi, qword [r13 + rax*8 + 0x1a8]
add rsi, r15
cmp dword [rsi + 8], 0
je 0x140021912
cmp byte [rbp - 0x80], 0x1f
jb 0x14002183d
mov rax, qword [rbp - 0x68]
mov qword [rbp - 0x78], r12
mov byte [rax], 0
jmp 0x140021841
mov qword [rbp - 0x80], r12
mov r9d, r14d
lea r8, str.___02u:
mov edx, 1
lea rcx, [rbp - 0x80]
call sym.phoenix_rainbow_loader.exe_public:_unsigned_int___cdecl_asmjit::String::_opFormat_unsigned_int__char_const____ptr64____ptr64
cmp dword [rsi + 8], 0
mov ebx, r12d
jbe 0x1400218d4
nop dword [rax]
nop word [rax + rax]
mov eax, ebx
lea rcx, [rax + rax*2]
mov rax, qword [rsi]
lea rdi, [rax + rcx*4]
test ebx, ebx
je 0x1400218a2
mov edx, 1
lea rcx, [rbp - 0x80]
lea r8d, [rdx + 1]
call sym.phoenix_rainbow_loader.exe_public:_char____ptr64___cdecl_asmjit::String::prepare_unsigned_int__unsigned_long_long_unsigned___int64_____ptr64
test rax, rax
je 0x1400218a2
movzx ecx, word [0x14010b144]
mov word [rax], cx
mov eax, dword [rdi + 8]
lea r8, str.__u:_u__u_
mov r9d, dword [rdi]
lea rcx, [rbp - 0x80]
mov dword [rsp + 0x28], eax
mov edx, 1
mov eax, dword [rdi + 4]
mov dword [rsp + 0x20], eax
call sym.phoenix_rainbow_loader.exe_public:_unsigned_int___cdecl_asmjit::String::_opFormat_unsigned_int__char_const____ptr64____ptr64
inc ebx
cmp ebx, dword [rsi + 8]
jb 0x140021870
mov rdi, qword [rsp + 0x70]
mov edx, 1
lea rcx, [rbp - 0x80]
mov r8d, edx
call sym.phoenix_rainbow_loader.exe_public:_char____ptr64___cdecl_asmjit::String::prepare_unsigned_int__unsigned_long_long_unsigned___int64_____ptr64
test rax, rax
je 0x1400218ed
mov byte [rax], 0xa
mov rax, qword [rdi]
mov r8, qword [rbp - 0x78]
mov r9, qword [rax + 8]
movzx eax, byte [rbp - 0x80]
cmp al, 0x1f
jae 0x140021903
mov r8d, eax
lea rdx, [rbp - 0x7f]
mov rcx, rdi
cmovae rdx, qword [rbp - 0x68]
call r9
inc r14d
add r15, 0x10
cmp r14d, dword [rsp + 0x58]
jb 0x140021810
mov r8d, dword [rbp + 0x208]
test r8d, r8d
jne 0x14002194d
test rdi, rdi
je 0x140021a96
lea rdx, str.__Completed._n
mov rcx, rdi
call sym.phoenix_rainbow_loader.exe_public:_unsigned_int___cdecl_asmjit::Logger::logf_char_const____ptr64____ptr64
jmp 0x140021a96
mov rsi, qword [rsp + 0x50]
mov rax, qword [rsp + 0x78]
mov rcx, rsi
lea rdx, [rsi + r8*8]
mov byte [rax + 0x190], 1
cmp rsi, rdx
je 0x140021980
nop word [rax + rax]
mov rax, qword [rcx]
add rcx, 8
or dword [rax + 0x24], 4
cmp rcx, rdx
jne 0x140021970
test rdi, rdi
je 0x140021a96
cmp byte [rbp - 0x80], 0x1f
jb 0x14002199c
mov rax, qword [rbp - 0x68]
mov qword [rbp - 0x78], r12
mov byte [rax], 0
jmp 0x1400219a0
mov qword [rbp - 0x80], r12
mov r9d, r8d
lea rcx, [rbp - 0x80]
lea r8, str.__Unassigned___u_:
mov edx, 1
call sym.phoenix_rainbow_loader.exe_public:_unsigned_int___cdecl_asmjit::String::_opFormat_unsigned_int__char_const____ptr64____ptr64
mov r14d, dword [rbp + 0x210]
test r14d, r14d
je 0x140021a58
mov rdi, qword [rsi]
test r12d, r12d
je 0x1400219f1
mov edx, 1
lea rcx, [rbp - 0x80]
lea r8d, [rdx + 1]
call sym.phoenix_rainbow_loader.exe_public:_char____ptr64___cdecl_asmjit::String::prepare_unsigned_int__unsigned_long_long_unsigned___int64_____ptr64
test rax, rax
je 0x1400219f1
movzx ecx, word [0x14010b154]
mov word [rax], cx
mov rdi, qword [rdi + 8]
cmp dword [rdi + 0x10], 0xb
ja 0x140021a01
add rdi, 0x14
jmp 0x140021a05
mov rdi, qword [rdi + 0x18]
test rdi, rdi
je 0x140021a43
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [rdi + rbx], 0
jne 0x140021a11
test rbx, rbx
je 0x140021a43
mov r8, rbx
lea rcx, [rbp - 0x80]
mov edx, 1
call sym.phoenix_rainbow_loader.exe_public:_char____ptr64___cdecl_asmjit::String::prepare_unsigned_int__unsigned_long_long_unsigned___int64_____ptr64
test rax, rax
je 0x140021a43
mov r8, rbx
mov rdx, rdi
mov rcx, rax
call fcn.140081640
inc r12d
add rsi, 8
cmp r12d, r14d
jb 0x1400219c8
mov rdi, qword [rsp + 0x70]
mov edx, 1
lea rcx, [rbp - 0x80]
mov r8d, edx
call sym.phoenix_rainbow_loader.exe_public:_char____ptr64___cdecl_asmjit::String::prepare_unsigned_int__unsigned_long_long_unsigned___int64_____ptr64
test rax, rax
je 0x140021a71
mov byte [rax], 0xa
mov rax, qword [rdi]
mov r8, qword [rbp - 0x78]
mov r9, qword [rax + 8]
movzx eax, byte [rbp - 0x80]
cmp al, 0x1f
jae 0x140021a87
mov r8d, eax
lea rdx, [rbp - 0x7f]
mov rcx, rdi
cmovae rdx, qword [rbp - 0x68]
call r9
cmp byte [rbp - 0x80], 0x1f
jne 0x140021aa5
mov rcx, qword [rbp - 0x68]
call fcn.1400867c0
xor eax, eax
add rsp, 0x2b8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret