Function at 0x45d020
Capabilities:
Access peb ldr_data

Disassembly:
lea r12, [rsp - 0x10]
cmp r12, qword [r14 + 0x10]
jbe 0x45d979
push rbp
mov rbp, rsp
sub rsp, 0x88
cmp dword [0x0060ac84], 2
je 0x45d967
test rax, rax
je 0x45d8ca
mov qword [rsp + 0xa0], rbx
mov byte [rsp + 0xa8], cl
cmp byte [0x0060b2b8], 0
je 0x45d0f1
cmp dword [0x0060b2c4], 0
je 0x45d0d1
test rbx, rbx
je 0x45d0b4
nop word [rax + rax]
test rax, 7
jne 0x45d08f
mov edx, 8
jmp 0x45d0b9
test rax, 3
jne 0x45d09e
mov edx, 4
jmp 0x45d0b9
test rax, 1
mov edx, 1
mov esi, 2
cmove rdx, rsi
jmp 0x45d0b9
mov edx, 0x10
mov rbx, rdx
lea rcx, [0x0060dce0]
call sym.runtime.persistentalloc
add rsp, 0x88
pop rbp
ret
cmp byte [0x0060afc0], 0
je 0x45d0f1
mov rdx, qword [0x0060afc8]
cmp qword [r14 + 0x98], rdx
jne 0x45d0f1
inc qword [0x0060afd0]
mov qword [rsp + 0x98], rax
call sym.runtime.deductAssistCredit
mov rcx, qword [r14 + 0x30]
nop
inc dword [rcx + 0xd8]
mov rcx, qword [r14 + 0x30]
cmp dword [rcx + 0xc0], 0
jne 0x45d956
mov rdx, r14
nop dword [rax]
cmp qword [rcx + 0x50], rdx
je 0x45d945
mov dword [rcx + 0xc0], 1
mov rdx, qword [rcx + 0xa0]
nop dword [rax + rax]
test rdx, rdx
je 0x45d14b
mov rdx, qword [rdx + 0x40]
jmp 0x45d152
mov rdx, qword [0x0060adf8]
test rdx, rdx
je 0x45d932
mov r8, qword [rsp + 0xa0]
test r8, r8
je 0x45d173
cmp qword [r8 + 8], 0
sete r9b
jmp 0x45d179
mov r9d, 1
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x48], rdx
mov byte [rsp + 0x2d], r9b
mov rbx, qword [rsp + 0x98]
nop word [rax + rax]
nop
cmp rbx, 0x7ff8
ja 0x45d5af
test r9b, r9b
je 0x45d356
nop word [rax + rax]
nop
cmp rbx, 0x10
jae 0x45d34c
mov r10, qword [rdx + 0x18]
test rbx, 7
jne 0x45d1e2
add r10, 7
and r10, 0xfffffffffffffff8
nop
jmp 0x45d203
test rbx, 3
jne 0x45d1f5
add r10, 3
and r10, 0xfffffffffffffffc
jmp 0x45d203
bt ebx, 0
jb 0x45d203
inc r10
nop
and r10, 0xfffffffffffffffe
lea r11, [r10 + rbx]
cmp r11, 0x10
ja 0x45d261
mov r12, qword [rdx + 0x10]
test r12, r12
je 0x45d261
lea rax, [r12 + r10]
mov qword [rdx + 0x18], r11
inc qword [rdx + 0x20]
mov dword [rcx + 0xc0], 0
mov edx, dword [rcx + 0xd8]
lea ebx, [rdx - 1]
nop
mov dword [rcx + 0xd8], ebx
nop dword [rax]
cmp edx, 1
jne 0x45d257
cmp byte [r14 + 0xb1], 0
je 0x45d257
mov qword [r14 + 0x10], 0xfffffffffffffade
add rsp, 0x88
pop rbp
nop
ret
mov r10, qword [rdx + 0x50]
mov r11, qword [r10 + 0x38]
bsf r12, r11
mov r13d, 0x40
cmove r12, r13
cmp r12, 0x40
jge 0x45d2f4
movzx r13d, word [r10 + 0x30]
lea r15d, [r13 + r12]
movzx esi, word [r10 + 0x32]
cmp si, r15w
jbe 0x45d2f4
lea r13d, [r13 + r12]
lea r13d, [r13 + 1]
nop dword [rax + rax]
test r13w, 0x3f
jne 0x45d2b6
cmp si, r13w
je 0x45d2b6
mov rsi, rcx
xor r11d, r11d
jmp 0x45d2fa
inc r12
mov rsi, rcx
mov rcx, r12
shr r11, cl
movzx r15d, r15w
cmp rcx, 0x40
sbb r12, r12
and r11, r12
mov qword [r10 + 0x38], r11
mov word [r10 + 0x30], r13w
movzx r11d, word [r10 + 0x60]
inc r11d
mov word [r10 + 0x60], r11w
mov r11, qword [r10 + 0x68]
imul r11, r15
add r11, qword [r10 + 0x18]
jmp 0x45d2fa
mov rsi, rcx
xor r11d, r11d
test r11, r11
je 0x45d303
xor ecx, ecx
jmp 0x45d33b
mov rax, rdx
mov ebx, 5
call sym.runtime._mcache_.nextFree
mov rdx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x58]
mov r8, qword [rsp + 0xa0]
movzx r9d, byte [rsp + 0x2d]
mov r11, rax
mov r10, rbx
mov rax, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x98]
movups xmmword [r11], xmm15
mov r12d, 0x10
xor edi, edi
jmp 0x45d5a7
test r9b, r9b
je 0x45d356
xor r10d, r10d
jmp 0x45d361
cmp rbx, 0x200
seta r10b
test r10b, r10b
je 0x45d36c
lea r11, [rbx + 8]
jmp 0x45d36f
mov r11, rbx
cmp r11, 0x3f8
ja 0x45d39b
add r11, 7
shr r11, 3
cmp r11, 0x81
jae 0x45d925
lea r12, [0x00578960]
movzx r11d, byte [r12 + r11]
jmp 0x45d3c0
add r11, 0xfffffffffffffc7f
shr r11, 7
cmp r11, 0xf9
jae 0x45d916
lea r12, str._______________________....______0001123333333333444444444455666677777888888888889999999999::::::___________________________________________________________________________AAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
movzx r11d, byte [r12 + r11]
nop
cmp r11, 0x44
jae 0x45d909
mov r12d, r11d
shl r11d, 1
movzx r13d, r9b
or r11d, r13d
movzx r13d, r11b
lea r15, [0x00578a00]
movzx r12d, word [r15 + r12*2]
nop
cmp r13, 0x88
jae 0x45d8fc
mov r13, qword [rdx + r13*8 + 0x28]
mov r15, qword [r13 + 0x38]
bsf rsi, r15
mov rdi, r8
mov r8d, 0x40
cmove rsi, r8
cmp rsi, 0x40
jge 0x45d4a1
movzx r8d, word [r13 + 0x30]
lea eax, [r8 + rsi]
movzx ecx, word [r13 + 0x32]
cmp cx, ax
jbe 0x45d497
lea r8d, [r8 + rsi]
lea r8d, [r8 + 1]
test r8w, 0x3f
jne 0x45d455
nop dword [rax]
cmp cx, r8w
je 0x45d455
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x58]
xor r8d, r8d
jmp 0x45d4a4
lea rcx, [rsi + 1]
shr r15, cl
movzx eax, ax
cmp rcx, 0x40
sbb rcx, rcx
and r15, rcx
mov qword [r13 + 0x38], r15
mov word [r13 + 0x30], r8w
movzx r8d, word [r13 + 0x60]
inc r8d
mov word [r13 + 0x60], r8w
mov r8, qword [r13 + 0x68]
imul r8, rax
add r8, qword [r13 + 0x18]
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x58]
jmp 0x45d4a4
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x58]
xor r8d, r8d
mov byte [rsp + 0x2e], r10b
mov qword [rsp + 0x50], r12
test r8, r8
je 0x45d4b7
xor esi, esi
jmp 0x45d4fd
mov rax, rdx
mov ebx, r11d
nop dword [rax]
call sym.runtime._mcache_.nextFree
mov rdx, qword [rsp + 0x48]
mov rdi, qword [rsp + 0xa0]
movzx r9d, byte [rsp + 0x2d]
movzx r10d, byte [rsp + 0x2e]
mov r12, qword [rsp + 0x50]
mov r8, rax
mov r13, rbx
mov esi, ecx
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x98]
movzx r11d, byte [rsp + 0xa8]
test r11b, r11b
je 0x45d579
cmp byte [r13 + 0x64], 0
jne 0x45d517
test r10b, r10b
jmp 0x45d57c
mov qword [rsp + 0x80], r8
mov byte [rsp + 0x2c], sil
mov qword [rsp + 0x38], r13
mov rax, r8
mov rbx, r12
call sym.runtime.memclrNoHeapPointers
movzx ecx, byte [rsp + 0x2e]
test cl, cl
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x98]
movzx esi, byte [rsp + 0x2c]
mov rdi, qword [rsp + 0xa0]
mov r8, qword [rsp + 0x80]
movzx r9d, byte [rsp + 0x2d]
mov r12, qword [rsp + 0x50]
mov r13, qword [rsp + 0x38]
jmp 0x45d57c
test r10b, r10b
je 0x45d589
nop
add r12, 0xfffffffffffffff8
lea r10, [r8 + 8]
jmp 0x45d58f
mov r10, r8
xor r8d, r8d
mov r11, r10
mov rdi, r8
mov ecx, esi
mov rsi, qword [rsp + 0x58]
mov r8, qword [rsp + 0xa0]
mov r10, r13
xor r13d, r13d
jmp 0x45d67a
mov rax, rdx
mov ecx, r9d
call sym.runtime._mcache_.allocLarge
mov word [rax + 0x30], 1
mov word [rax + 0x60], 1
mov rdx, qword [rax + 0x18]
mov rbx, qword [rax + 0x68]
movzx esi, byte [rsp + 0xa8]
test sil, sil
je 0x45d629
cmp byte [rax + 0x64], 0
nop
je 0x45d61f
movzx r8d, byte [rsp + 0x2d]
test r8b, r8b
jne 0x45d61a
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x60], rdx
mov rax, rdx
nop
call sym.runtime.memclrNoHeapPointers
mov rax, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x50]
movzx r8d, byte [rsp + 0x2d]
mov ecx, r8d
jmp 0x45d631
movzx ecx, byte [rsp + 0x2d]
xor r8d, r8d
jmp 0x45d631
movzx ecx, byte [rsp + 0x2d]
xor r8d, r8d
test cl, cl
je 0x45d63a
xor r9d, r9d
jmp 0x45d641
lea r9, [rax + 0x98]
mov rsi, qword [rsp + 0x58]
mov r10, rax
mov r11, rdx
mov r12, rbx
mov r13d, r8d
mov rdi, r9
mov ecx, 1
mov rax, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x98]
mov r8, qword [rsp + 0xa0]
movzx r9d, byte [rsp + 0x2d]
mov byte [rsp + 0x2c], cl
mov qword [rsp + 0x68], rdi
mov byte [rsp + 0x2f], r13b
mov qword [rsp + 0x60], r11
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], r10
test r9b, r9b
jne 0x45d6b3
mov rax, r11
mov rcx, r8
mov rsi, r10
call sym.runtime.heapSetType
mov rdx, qword [rsp + 0x48]
add qword [rdx + 8], rax
call sym.runtime.publicationBarrier
mov rax, qword [rsp + 0x38]
movzx ecx, word [rax + 0x30]
mov word [rax + 0x34], cx
cmp dword [0x0060ac84], 0
je 0x45d6de
mov rbx, qword [rsp + 0x60]
mov rcx, rbx
mov rbx, rcx
call sym.runtime.gcmarknewobject
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x78], rax
lea rdx, [sym.__tsan_malloc]
mov qword [rsp], rdx
movups xmmword [rsp + 8], xmm15
mov qword [rsp + 0x18], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x20], rax
call sym.runtime.racecall.abi0
xorps xmm15, xmm15
mov r14, qword [0x0060aeb0]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [0x005784f0]
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + 0x68]
mov qword [rsp + 0x40], rcx
test rax, rax
jle 0x45d76a
cmp rax, 1
je 0x45d754
mov rdx, qword [rsp + 0x48]
mov rsi, qword [rdx]
cmp rsi, rcx
jbe 0x45d754
sub rsi, rcx
mov qword [rdx], rsi
jmp 0x45d76a
mov rax, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
nop
call sym.runtime.profilealloc
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x58]
mov dword [rdx + 0xc0], 0
mov esi, dword [rdx + 0xd8]
lea edi, [rsi - 1]
nop
mov dword [rdx + 0xd8], edi
cmp esi, 1
jne 0x45d7a0
cmp byte [r14 + 0xb1], 0
je 0x45d7a0
mov qword [r14 + 0x10], 0xfffffffffffffade
movzx edx, byte [rsp + 0x2f]
test dl, dl
je 0x45d7dd
movzx edx, byte [rsp + 0x2d]
test dl, dl
je 0x45d8eb
mov rsi, qword [rsp + 0x68]
nop dword [rax + rax]
test rsi, rsi
jne 0x45d8da
mov rax, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x60]
call sym.runtime.memclrNoHeapPointersChunked
mov rcx, qword [rsp + 0x40]
cmp byte [0x0060b2b8], 0
je 0x45d830
cmp dword [0x0060b2bc], 0
je 0x45d80b
mov rax, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0xa0]
call sym.runtime.tracealloc
mov rcx, qword [rsp + 0x40]
cmp byte [0x0060afc0], 0
je 0x45d830
mov rdx, qword [0x0060afc8]
nop dword [rax + rax]
cmp qword [r14 + 0x98], rdx
jne 0x45d830
add qword [0x0060afd8], rcx
mov rdx, qword [rsp + 0x70]
test rdx, rdx
je 0x45d84e
mov rsi, qword [rsp + 0x98]
sub rcx, rsi
sub qword [rdx + 0x1a0], rcx
jmp 0x45d856
mov rsi, qword [rsp + 0x98]
movzx edx, byte [rsp + 0x2c]
test dl, dl
jne 0x45d868
movzx ecx, byte [rsp + 0x2d]
test cl, cl
jmp 0x45d89c
xor eax, eax
xor ebx, ebx
xor ecx, ecx
call sym.runtime.gcTrigger.test
test al, al
jne 0x45d882
movzx ecx, byte [rsp + 0x2d]
test cl, cl
nop
jmp 0x45d894
xor eax, eax
xor ebx, ebx
xor ecx, ecx
call sym.runtime.gcStart
movzx edx, byte [rsp + 0x2d]
test dl, dl
mov rsi, qword [rsp + 0x98]
je 0x45d8b9
nop
cmp rsi, 0x10
jae 0x45d8b9
mov rcx, qword [rsp + 0x30]
sub rcx, rsi
mov rdx, qword [rsp + 0x60]
lea r11, [rdx + rcx]
jmp 0x45d8be
mov r11, qword [rsp + 0x60]
mov rax, r11
add rsp, 0x88
pop rbp
ret
lea rax, [0x0060ac60]
add rsp, 0x88
pop rbp
ret
lea rax, [0x004e7588]
mov ebx, 0x3b
call sym.runtime.throw
lea rax, [0x004e6ec5]
mov ebx, 0x31
call sym.runtime.throw
mov rax, r13
mov ecx, 0x88
call sym.runtime.panicIndex
mov eax, r11d
mov ecx, 0x44
call sym.runtime.panicIndex
mov rax, r11
mov ecx, 0xf9
nop
call sym.runtime.panicIndexU
mov rax, r11
mov ecx, 0x81
call sym.runtime.panicIndexU
lea rax, [0x004e714f]
mov ebx, 0x34
nop
call sym.runtime.throw
lea rax, [0x004e2742]
mov ebx, 0x14
call sym.runtime.throw
lea rax, [0x004e1705]
mov ebx, 0xf
call sym.runtime.throw
lea rax, [0x004e6fbb]
mov ebx, 0x32
call sym.runtime.throw
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov byte [rsp + 0x18], cl
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
movzx ecx, byte [rsp + 0x18]
nop dword [rax + rax]
jmp sym.runtime.mallocgc