Function at 0x14000162f
Capabilities:
Access peb ldr_data

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x138
movaps xmmword [rsp + 0x120], xmm15
movaps xmmword [rsp + 0x110], xmm14
movaps xmmword [rsp + 0x100], xmm13
movaps xmmword [rsp + 0xf0], xmm12
movaps xmmword [rsp + 0xe0], xmm11
movaps xmmword [rsp + 0xd0], xmm10
movaps xmmword [rsp + 0xc0], xmm9
movdqa xmmword [rsp + 0xb0], xmm8
movaps xmmword [rsp + 0xa0], xmm7
movaps xmmword [rsp + 0x90], xmm6
mov r12, rdx
mov qword [rsp + 0x80], rcx
mov eax, 0x60
mov rax, qword gs:[eax]
mov r13, qword [rax + 0x18]
lea rax, [r13 + 0x20]
mov qword [rsp + 0x60], rax
mov rsi, qword [r13 + 0x20]
lea rax, str.library_alloc_src_str.rs
mov qword [rsp + 0x58], rax
pxor xmm8, xmm8
packuswb xmm8, xmm8
movdqa xmm11, xmmword [0x140038030]
movdqa xmm12, xmmword [0x140038040]
movdqa xmm13, xmmword [0x140038050]
movdqa xmm14, xmmword [0x140038060]
movdqa xmm15, xmmword [0x140038070]
movdqa xmm9, xmmword [0x140038080]
movdqa xmm10, xmmword [0x140038090]
movdqa xmm6, xmmword [0x1400380a0]
movdqa xmm7, xmmword [0x1400380c0]
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x70], r13
mov rbx, qword [rsi + 0x50]
mov qword [rsp + 0x88], rsi
movzx eax, word [rsi + 0x48]
mov edx, eax
shr edx, 1
lea rdi, [rbx + rdx*2]
mov qword [rsp + 0x30], 1
lea rcx, [rsp + 0x38]
pxor xmm0, xmm0
movdqu xmmword [rcx], xmm0
shr eax, 2
and edx, 1
add rdx, rax
lea rcx, [rsp + 0x30]
call fcn.14000146d
xor r14d, r14d
test r14w, r14w
je 0x14000177e
mov ecx, ebp
jmp 0x14000178e
cmp rbx, rdi
je 0x140001931
movzx ecx, word [rbx]
add rbx, 2
lea eax, [rcx + 0x2000]
cmp ax, 0xf800
jae 0x1400017a3
movzx eax, cx
shl rax, 0x10
jmp 0x1400017f7
cmp cx, 0xdbff
ja 0x140001867
cmp rbx, rdi
je 0x14000186c
movzx eax, word [rbx]
add rbx, 2
mov edx, eax
add edx, 0x2000
cmp dx, 0xfc00
jb 0x140001881
movzx eax, ax
and ecx, 0x3ff
and eax, 0x3ff
shl rcx, 0x1a
shl rax, 0x10
or rax, rcx
movabs rcx, 0x100000000
add rax, rcx
mov rsi, rax
shr rsi, 0x10
cmp esi, 0x80
jae 0x14000183a
mov rdx, qword [rsp + 0x40]
cmp rdx, qword [rsp + 0x38]
jne 0x140001821
lea rcx, [rsp + 0x30]
call fcn.1400015ef
mov rdx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x30]
mov byte [rax + rdx], sil
inc rdx
mov qword [rsp + 0x40], rdx
xor r14d, r14d
jmp 0x140001774
and dword [rsp + 0x2c], 0
cmp esi, 0x800
jae 0x140001874
shr eax, 0x16
or al, 0xc0
mov byte [rsp + 0x2c], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x2d], sil
mov esi, 2
jmp 0x1400018fa
xor r14d, r14d
jmp 0x140001888
xor r14d, r14d
mov rbx, rdi
jmp 0x140001888
cmp esi, 0x10000
jae 0x1400018be
xor r14d, r14d
jmp 0x140001892
mov r14w, 1
mov ebp, eax
and dword [rsp + 0x2c], 0
mov esi, 0xfffd
mov eax, esi
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x2c], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x2d], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x2e], sil
mov esi, 3
jmp 0x1400018fd
mov rcx, rax
shr rcx, 0x22
or cl, 0xf0
mov byte [rsp + 0x2c], cl
mov rcx, rax
shr rcx, 0x1c
and cl, 0x3f
or cl, 0x80
mov byte [rsp + 0x2d], cl
shr eax, 0x16
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x2e], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x2f], sil
mov esi, 4
xor r14d, r14d
lea rcx, [rsp + 0x30]
mov rdx, rsi
call fcn.14000146d
mov r15, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x30]
add rcx, r15
lea rdx, [rsp + 0x2c]
mov r8, rsi
call sub.msvcrt.dll_memcpy
add r15, rsi
mov qword [rsp + 0x40], r15
jmp 0x140001774
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x68], rax
mov rbp, qword [rsp + 0x40]
test rbp, rbp
je 0x140001bbd
js 0x1400020bb
mov rsi, rbp
not rsi
shr rsi, 0x3f
mov al, byte [0x140047030]
mov rcx, rbp
mov rdx, rsi
call fcn.140002620
test rax, rax
je 0x1400020ae
mov rbx, rax
cmp rbp, 0x10
jb 0x140001bc2
xor esi, esi
mov rax, qword [rsp + 0x50]
mov rcx, qword [rax + rsi]
movdqu xmm0, xmmword [rax + rsi]
pshufd xmm1, xmm0, 0xee
movq rax, xmm1
mov rdx, rax
or rdx, rcx
movabs r8, 0x8080808080808080
test rdx, r8
jne 0x140001bc4
mov r8, rcx
mov r10, rcx
mov rdx, rcx
shr rdx, 0x28
mov r9, rcx
shr r9, 0x20
pshufd xmm1, xmm0, 0x44
movdqa xmm2, xmm0
psrlq xmm2, 0x10
psrlq xmm1, 0x18
movsd xmm1, xmm2
shr ecx, 8
movd xmm2, ecx
movdqa xmm3, xmm0
punpcklqdq xmm3, xmm2
movapd xmm2, xmmword [section..rdata]
andpd xmm1, xmm2
pand xmm3, xmm2
packuswb xmm3, xmm1
movd xmm1, r9d
pshufd xmm1, xmm1, 0x50
movdqa xmm2, xmmword [0x140038010]
pandn xmm2, xmm1
movd xmm1, edx
psllq xmm1, 0x28
movdqa xmm4, xmmword [0x140038020]
pandn xmm4, xmm1
mov rcx, rax
shr rcx, 0x28
mov rdx, rax
shr rdx, 0x20
mov r9d, eax
shr r9d, 0x18
mov r11d, eax
shr r11d, 0x10
mov edi, eax
shr edi, 8
shr r8, 0x38
shr r10, 0x30
packuswb xmm3, xmmword [0x140038100]
packuswb xmm3, xmm8
por xmm4, xmm2
por xmm4, xmm3
pand xmm4, xmm11
movd xmm1, r10d
psllq xmm1, 0x30
movdqa xmm2, xmm11
pandn xmm2, xmm1
por xmm2, xmm4
pand xmm2, xmm12
movd xmm1, r8d
psllq xmm1, 0x38
movdqa xmm3, xmm12
pandn xmm3, xmm1
por xmm3, xmm2
pand xmm3, xmm13
movd xmm1, eax
pshufd xmm1, xmm1, 0x44
movdqa xmm2, xmm13
pandn xmm2, xmm1
por xmm2, xmm3
pand xmm2, xmm14
movd xmm1, edi
pslldq xmm1, 9
movdqa xmm3, xmm14
pandn xmm3, xmm1
por xmm3, xmm2
pand xmm3, xmm15
movd xmm1, r11d
pslldq xmm1, 0xa
movdqa xmm2, xmm15
pandn xmm2, xmm1
por xmm2, xmm3
pand xmm2, xmm9
movd xmm1, r9d
pslldq xmm1, 0xb
movdqa xmm3, xmm9
pandn xmm3, xmm1
por xmm3, xmm2
pand xmm3, xmm10
movd xmm1, edx
pshufd xmm1, xmm1, 0
movdqa xmm2, xmm10
pandn xmm2, xmm1
por xmm2, xmm3
movd xmm1, ecx
pslldq xmm1, 0xd
movdqa xmm3, xmm6
pandn xmm3, xmm1
shr rax, 0x30
pand xmm2, xmm6
por xmm3, xmm2
pand xmm3, xmmword [0x1400380b0]
movd xmm1, eax
pslldq xmm1, 0xe
por xmm1, xmm3
pand xmm1, xmm7
movdqa xmm2, xmm7
pandn xmm2, xmm0
por xmm2, xmm1
movdqa xmm0, xmm2
paddb xmm0, xmmword [0x1400380d0]
movdqa xmm1, xmm0
pminub xmm1, xmmword [0x1400380e0]
pcmpeqb xmm1, xmm0
pand xmm1, xmmword [0x1400380f0]
por xmm1, xmm2
movdqu xmmword [rbx + rsi], xmm1
lea rax, [rsi + 0x10]
add rsi, 0x20
cmp rsi, rbp
mov rsi, rax
jbe 0x14000198c
mov rsi, rax
jmp 0x140001bc4
mov ebx, 1
xor esi, esi
mov rax, rbp
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x40], rsi
sub rax, rsi
mov qword [rsp + 0x48], rax
jne 0x140001be8
mov rsi, rbp
jmp 0x140001f88
mov rax, qword [rsp + 0x50]
add rsi, rax
add rbp, rax
xor edi, edi
mov r13, rsi
movzx edx, byte [r13]
test dl, dl
js 0x140001c07
lea r12, [r13 + 1]
jmp 0x140001c6e
mov eax, edx
and eax, 0x1f
movzx r8d, byte [r13 + 1]
and r8d, 0x3f
cmp dl, 0xdf
jbe 0x140001c55
movzx ecx, byte [r13 + 2]
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
cmp dl, 0xf0
jb 0x140001c63
movzx edx, byte [r13 + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and edx, 0x3f
or edx, ecx
or edx, eax
cmp edx, 0x110000
je 0x140001f6f
lea r12, [r13 + 4]
jmp 0x140001c6e
lea r12, [r13 + 2]
shl eax, 6
or eax, r8d
mov edx, eax
jmp 0x140001c6e
lea r12, [r13 + 3]
shl eax, 0xc
or ecx, eax
mov edx, ecx
cmp edx, 0x3a3
je 0x140001ca0
cmp edx, 0x110000
je 0x140001f6f
cmp edx, 0x80
jae 0x140001cb7
lea eax, [rdx - 0x41]
xor ecx, ecx
cmp al, 0x1a
setb cl
shl ecx, 5
or ecx, edx
mov edx, ecx
jmp 0x140001e2c
test rdi, rdi
je 0x140001d1b
cmp rdi, qword [rsp + 0x48]
jae 0x140001d15
cmp byte [rsi + rdi], 0xbf
jg 0x140001d1b
jmp 0x14000207a
mov eax, 0x57f
xor r8d, r8d
mov ecx, 0x57f
shr rax, 1
add rax, r8
xor r9d, r9d
lea r10, [0x14003b448]
cmp dword [r10 + rax*8], edx
setne r9b
mov r10d, 0xff
cmovb r9d, r10d
cmp r9b, 1
je 0x140001d08
movzx r8d, r9b
cmp r8d, 0xff
jne 0x140001de9
inc rax
mov r8, rax
mov rax, rcx
jmp 0x140001d0b
mov rcx, rax
sub rax, r8
ja 0x140001cc4
jmp 0x140001e2c
jne 0x14000207a
lea r14, [rsi + rdi]
xor eax, eax
cmp r14, rsi
je 0x140001f04
movzx ebx, byte [r14 - 1]
test bl, bl
js 0x140001d38
dec r14
jmp 0x140001d91
movzx ecx, byte [r14 - 2]
cmp cl, 0xc0
jge 0x140001d65
movzx edx, byte [r14 - 3]
cmp dl, 0xc0
jge 0x140001d6e
movzx r8d, byte [r14 - 4]
add r14, 0xfffffffffffffffc
and r8d, 7
shl r8d, 6
and edx, 0x3f
or edx, r8d
jmp 0x140001d75
add r14, 0xfffffffffffffffe
and ecx, 0x1f
jmp 0x140001d7d
add r14, 0xfffffffffffffffd
and edx, 0xf
shl edx, 6
and ecx, 0x3f
or ecx, edx
shl ecx, 6
and ebx, 0x3f
or ebx, ecx
cmp ebx, 0x110000
je 0x140001f04
test al, al
jne 0x140001da9
mov ecx, ebx
call fcn.140007690
test al, al
je 0x140001da9
mov ebx, 0x110000
xor eax, eax
jmp 0x140001dab
mov al, 1
cmp ebx, 0x110000
je 0x140001d21
mov ecx, ebx
call fcn.1400077d0
test al, al
je 0x140001f04
mov rbx, rdi
mov r14, qword [rsp + 0x48]
add rbx, 2
je 0x140001e41
mov r14, qword [rsp + 0x48]
sub r14, rbx
jbe 0x140001e3b
cmp byte [rsi + rbx], 0xc0
jge 0x140001e41
jmp 0x14000209b
lea rcx, [0x14003b448]
mov edx, dword [rcx + rax*8 + 4]
mov eax, edx
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef0800
setb al
cmp edx, 0x110000
sete cl
or cl, al
mov eax, 0x69
cmovne edx, eax
je 0x140001e2c
lea rcx, [rsp + 0x30]
call fcn.140002f20
mov edx, 0x307
lea rcx, [rsp + 0x30]
call fcn.140002f20
jmp 0x140001f42
jne 0x14000209b
add rbx, rsi
add r14, rbx
xor eax, eax
cmp rbx, r14
je 0x140001f56
movzx r15d, byte [rbx]
test r15b, r15b
js 0x140001e60
inc rbx
jmp 0x140001ecf
mov ecx, r15d
and ecx, 0x1f
movzx r8d, byte [rbx + 1]
and r8d, 0x3f
cmp r15b, 0xdf
jbe 0x140001eb4
movzx edx, byte [rbx + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp r15b, 0xf0
jb 0x140001ec3
movzx r15d, byte [rbx + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and r15d, 0x3f
or r15d, edx
or r15d, ecx
cmp r15d, 0x110000
je 0x140001f56
add rbx, 4
jmp 0x140001ecf
add rbx, 2
shl ecx, 6
or ecx, r8d
mov r15d, ecx
jmp 0x140001ecf
add rbx, 3
shl ecx, 0xc
or edx, ecx
mov r15d, edx
test al, al
jne 0x140001ee9
mov ecx, r15d
call fcn.140007690
test al, al
je 0x140001ee9
mov r15d, 0x110000
xor eax, eax
jmp 0x140001eeb
mov al, 1
cmp r15d, 0x110000
je 0x140001e49
mov ecx, r15d
call fcn.1400077d0
test al, al
je 0x140001f56
mov rax, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
sub rax, rdx
mov bx, 0x83cf
cmp rax, 2
jae 0x140001f30
mov r8d, 2
lea rcx, [rsp + 0x30]
call fcn.140002ab0
mov rdx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x30]
mov word [rax + rdx], bx
add rdx, 2
mov qword [rsp + 0x40], rdx
sub rdi, r13
add rdi, r12
mov r13, r12
cmp r12, rbp
jne 0x140001bf8
jmp 0x140001f6f
mov rax, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
sub rax, rdx
mov bx, 0x82cf
cmp rax, 1
jbe 0x140001f1b
jmp 0x140001f30
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov r12, qword [rsp + 0x78]
mov r13, qword [rsp + 0x70]
cmp rbp, r12
jae 0x140001f9f
mov rcx, rbx
mov rdx, rsi
call fcn.14000145c
mov rdx, qword [rsp + 0x68]
jmp 0x140001fcc
mov rcx, qword [rsp + 0x80]
mov rdx, r12
mov r8, rbx
mov r9, r12
call fcn.14000160a
mov edi, eax
mov rcx, rbx
mov rdx, rsi
call fcn.14000145c
test dil, dil
mov rdx, qword [rsp + 0x68]
jne 0x140001ff5
mov rax, qword [rsp + 0x60]
cmp rax, qword [r13 + 0x28]
je 0x140001ff1
mov rax, qword [rax]
mov qword [rsp + 0x60], rax
mov rsi, qword [rax]
mov rcx, qword [rsp + 0x50]
call fcn.14000145c
jmp 0x140001730
xor esi, esi
jmp 0x140002001
mov rax, qword [rsp + 0x88]
mov rsi, qword [rax + 0x20]
mov rcx, qword [rsp + 0x50]
call fcn.14000145c
mov rax, rsi
movaps xmm6, xmmword [rsp + 0x90]
movaps xmm7, xmmword [rsp + 0xa0]
movaps xmm8, xmmword [rsp + 0xb0]
movaps xmm9, xmmword [rsp + 0xc0]
movaps xmm10, xmmword [rsp + 0xd0]
movaps xmm11, xmmword [rsp + 0xe0]
movaps xmm12, xmmword [rsp + 0xf0]
movaps xmm13, xmmword [rsp + 0x100]
movaps xmm14, xmmword [rsp + 0x110]
movaps xmm15, xmmword [rsp + 0x120]
add rsp, 0x138
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor ebx, ebx
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov rcx, rsi
mov rdx, qword [rsp + 0x48]
mov r8, rbx
mov r9, rdi
call fcn.140005ac0
ud2
mov rdi, qword [rsp + 0x48]
lea rax, str.library_alloc_src_str.rs
mov qword [rsp + 0x58], rax
jmp 0x14000207c
mov rcx, rsi
mov rdx, rbp
call fcn.140002a80
ud2
call fcn.140002a40
ud2