Function at 0x14008a580
Capabilities:
Access peb ldr_data

Disassembly:
lea r12, [rsp - 0x50]
cmp r12, qword [r14 + 0x10]
jbe 0x14008af3a
sub rsp, 0xd0
mov qword [rsp + 0xc8], rbp
lea rbp, [rsp + 0xc8]
mov qword [rsp + 0xd8], rax
cmp rbx, 2
jl 0x14008aa62
mov byte [rsp + 0xe8], cl
mov qword [rsp + 0xe0], rbx
mov qword [rsp + 0xd8], rax
movzx ecx, byte [rax]
mov byte [rsp + 0x46], cl
lea rdx, [rax + 1]
mov qword [rsp + 0xa8], rdx
mov qword [rsp], rdx
lea rsi, [rbx - 1]
mov qword [rsp + 0x80], rsi
mov qword [rsp + 8], rsi
mov byte [rsp + 0x10], cl
nop dword [rax + rax]
call fcn.1400037c0
xorps xmm15, xmm15
mov r14, qword [0x140ae0ef8]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rcx, qword [rsp + 0x18]
nop dword [rax]
test rcx, rcx
jl 0x14008aa30
mov qword [rsp + 0x50], rcx
lea rax, [rcx + 2]
mov qword [rsp + 0x60], rax
movzx r9d, byte [rsp + 0x46]
nop dword [rax]
cmp r9b, 0x22
je 0x14008a79e
cmp r9b, 0x27
je 0x14008a79e
cmp r9b, 0x60
jne 0x14008a76c
movzx r9d, byte [rsp + 0xe8]
test r9b, r9b
je 0x14008a74b
mov rdx, qword [rsp + 0xe0]
nop dword [rax + rax]
cmp rdx, rax
jb 0x14008af31
nop
mov rcx, qword [rsp + 0xd8]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
mov byte [rsp + 0x10], 0xd
call fcn.1400037c0
xorps xmm15, xmm15
mov r14, qword [0x140ae0ef8]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x18], 0xffffffffffffffff
je 0x14008a705
mov rcx, qword [rsp + 0x50]
lea rdx, [rcx - 1]
mov qword [rsp + 0x78], rdx
lea rax, [0x14051bc60]
xor ebx, ebx
mov rcx, rdx
call fcn.14004b740
mov rdx, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x78]
mov ebx, 1
xor r8d, r8d
jmp 0x14008ae7c
mov rcx, qword [rsp + 0x50]
lea r9, [rcx + 1]
mov rdx, qword [rsp + 0xe0]
cmp rdx, r9
jb 0x14008ae71
nop
cmp r9, 1
jb 0x14008ae65
mov rax, rcx
neg rcx
sar rcx, 0x3f
and ecx, 1
mov r9, qword [rsp + 0xd8]
lea r10, [r9 + rcx]
mov rcx, rax
jmp 0x14008ae0d
mov rdx, qword [rsp + 0xe0]
cmp rdx, rax
jb 0x14008ae58
mov r9, qword [rsp + 0xd8]
mov r10, r9
jmp 0x14008ae0d
mov rsi, qword [0x140a8a3c0]
mov r8, qword [0x140a8a3c8]
xor eax, eax
xor ebx, ebx
mov rcx, qword [rsp + 0xd8]
mov rdi, qword [rsp + 0xe0]
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
mov rdx, qword [rsp + 0xe0]
cmp rdx, rax
jb 0x14008ae05
nop
mov rcx, qword [rsp + 0xd8]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
mov byte [rsp + 0x10], 0x5c
call fcn.1400037c0
xorps xmm15, xmm15
mov r14, qword [0x140ae0ef8]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x18], 0xffffffffffffffff
je 0x14008a7e9
xor eax, eax
jmp 0x14008a826
nop
nop
mov rax, qword [rsp + 0xd8]
mov qword [rsp], rax
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 8], rcx
mov byte [rsp + 0x10], 0xa
call fcn.1400037c0
xorps xmm15, xmm15
mov r14, qword [0x140ae0ef8]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x18], 0xffffffffffffffff
sete al
test al, al
je 0x14008a9b9
movzx ecx, byte [rsp + 0x46]
cmp cl, 0x22
jne 0x14008a88a
mov rbx, qword [rsp + 0x50]
lea rsi, [rbx + 1]
mov rdx, qword [rsp + 0xe0]
cmp rdx, rsi
jb 0x14008adfc
cmp rsi, 1
jb 0x14008adf0
mov rcx, rbx
neg rbx
sar rbx, 0x3f
and ebx, 1
mov rdx, qword [rsp + 0xd8]
lea rax, [rdx + rbx]
mov rbx, rcx
call fcn.140076f20
mov rdx, qword [rsp + 0x60]
mov r9d, eax
jmp 0x14008a90b
cmp cl, 0x27
jne 0x14008a903
mov rbx, qword [rsp + 0x50]
lea rsi, [rbx + 1]
mov rdx, qword [rsp + 0xe0]
cmp rdx, rsi
jb 0x14008ade8
cmp rsi, 1
jb 0x14008addc
mov rcx, rbx
neg rbx
sar rbx, 0x3f
and ebx, 1
mov rdx, qword [rsp + 0xd8]
lea rax, [rdx + rbx]
mov rbx, rcx
call fcn.1400763a0
lea rcx, [rbx + 2]
mov rdx, qword [rsp + 0x60]
nop dword [rax]
cmp rcx, rdx
jne 0x14008a8fe
cmp eax, 0xfffd
je 0x14008a8f4
mov r9d, 1
jmp 0x14008a90b
cmp rbx, 1
setne r9b
jmp 0x14008a90b
xor r9d, r9d
jmp 0x14008a90b
mov rdx, qword [rsp + 0x60]
xor r9d, r9d
test r9b, r9b
je 0x14008a9b9
movzx r9d, byte [rsp + 0xe8]
nop dword [rax]
test r9b, r9b
je 0x14008a968
mov rcx, qword [rsp + 0x50]
lea r9, [rcx + 1]
cmp r9, rdx
ja 0x14008add4
nop word [rax + rax]
cmp r9, 1
jb 0x14008adc8
mov rax, rcx
neg rcx
sar rcx, 0x3f
and ecx, 1
mov r9, qword [rsp + 0xd8]
lea r10, [r9 + rcx]
mov rcx, rax
jmp 0x14008a97b
mov rcx, qword [rsp + 0x50]
mov r9, qword [rsp + 0xd8]
mov rax, rdx
mov r10, r9
mov rdi, qword [rsp + 0xe0]
sub rdi, rcx
add rdi, 0xfffffffffffffffe
mov r11, rdi
neg rdi
sar rdi, 0x3f
and rdx, rdi
lea rcx, [r9 + rdx]
mov rbx, rax
mov rdi, r11
xor esi, esi
xor r8d, r8d
mov rax, r10
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
movzx r9d, byte [rsp + 0xe8]
test r9b, r9b
jne 0x14008a9cd
xor eax, eax
xor ecx, ecx
jmp 0x14008aa16
mov rdx, qword [rsp + 0x50]
lea rsi, [rdx + rdx*2]
lea rdx, [rdx + rdx*2]
lea rdx, [rdx + 6]
shr rdx, 0x3f
lea rcx, [rsi + rdx]
lea rcx, [rcx + 6]
sar rcx, 1
mov qword [rsp + 0x70], rcx
lea rax, [0x14051bc60]
xor ebx, ebx
nop dword [rax + rax]
call fcn.14004b740
movzx r9d, byte [rsp + 0xe8]
mov rcx, rax
mov rax, qword [rsp + 0x70]
movzx r10d, byte [rsp + 0x46]
mov rdx, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0x80]
xor ebx, ebx
jmp 0x14008aaa0
mov rsi, qword [0x140a8a3c0]
mov r8, qword [0x140a8a3c8]
xor eax, eax
xor ebx, ebx
mov rcx, qword [rsp + 0xd8]
mov rdi, qword [rsp + 0xe0]
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
mov rsi, qword [0x140a8a3c0]
mov r8, qword [0x140a8a3c8]
mov rcx, rax
mov rdi, rbx
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
mov rsi, rdi
mov rax, r10
mov r10d, r11d
mov r8, rdx
mov rdx, rcx
mov rcx, r8
nop dword [rax]
test rsi, rsi
je 0x14008acc2
cmp byte [rdx], r10b
je 0x14008acb0
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0xa0], rcx
mov rax, rdx
mov rbx, rsi
mov ecx, r10d
call fcn.14008a040
mov rdx, qword [rsp + 0xc0]
cmp byte [rdx], 0xa
je 0x14008ac7e
test rsi, rsi
jne 0x14008ac7e
movzx r9d, byte [rsp + 0xe8]
nop dword [rax]
test r9b, r9b
je 0x14008ac5a
mov qword [rsp + 0x88], rdi
mov qword [rsp + 0xb0], rcx
nop dword [rax]
cmp eax, 0x80
jl 0x14008ab2b
test bl, bl
jne 0x14008ab93
mov rbx, qword [rsp + 0x68]
inc rbx
mov r10, qword [rsp + 0x70]
cmp r10, rbx
jb 0x14008ab47
mov rdx, qword [rsp + 0xa0]
jmp 0x14008ab8a
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0xa0]
mov rcx, r10
mov edi, 1
lea rsi, [0x14051bc60]
call fcn.14004b820
mov rdi, qword [rsp + 0x88]
movzx r9d, byte [rsp + 0xe8]
mov rdx, rax
mov r10, rcx
mov eax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xb0]
mov byte [rbx + rdx - 1], al
jmp 0x14008ac6c
mov dword [rsp + 0x4c], 0
mov ebx, 4
mov rcx, rbx
mov edi, eax
lea rax, [rsp + 0x4c]
call fcn.1400767c0
cmp rax, 4
ja 0x14008adbb
mov rdx, qword [rsp + 0x68]
lea rbx, [rdx + rax]
mov rcx, qword [rsp + 0x70]
cmp rcx, rbx
jb 0x14008abd6
mov rsi, qword [rsp + 0xa0]
jmp 0x14008abff
mov qword [rsp + 0x58], rax
mov rdi, rax
lea rsi, [0x14051bc60]
mov rax, qword [rsp + 0xa0]
call fcn.14004b820
mov rdx, qword [rsp + 0x68]
mov rsi, rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0xb8], rsi
add rdx, rsi
mov rdi, rax
mov rax, rdx
lea rbx, [rsp + 0x4c]
mov rcx, rdi
call fcn.1400683e0
mov rcx, qword [rsp + 0xb0]
mov rdi, qword [rsp + 0x88]
movzx r9d, byte [rsp + 0xe8]
mov r10, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x98]
mov rdx, qword [rsp + 0xb8]
jmp 0x14008ac6c
mov rbx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0xa0]
mov r10, qword [rsp + 0x70]
movzx r11d, byte [rsp + 0x46]
cmp r11b, 0x27
jne 0x14008aa8a
jmp 0x14008acd1
mov rsi, qword [0x140a8a3c0]
mov r8, qword [0x140a8a3c8]
xor eax, eax
xor ebx, ebx
mov rcx, qword [rsp + 0xd8]
mov rdi, qword [rsp + 0xe0]
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
mov r11d, r10d
mov rdi, rsi
mov rax, rcx
mov rcx, rdx
mov rdx, rax
nop
jmp 0x14008acd1
mov r11d, r10d
mov rdi, rsi
mov rax, rcx
mov rcx, rdx
mov rdx, rax
test rdi, rdi
je 0x14008ad81
nop word [rax + rax]
cmp byte [rcx], r11b
jne 0x14008ad81
lea r10, [rdi - 1]
mov r11, r10
neg r10
sar r10, 0x3f
and r10d, 1
add rcx, r10
nop
test r9b, r9b
jne 0x14008ad3f
mov rbx, qword [rsp + 0xe0]
mov rdx, rbx
sub rbx, rdi
inc rbx
cmp rdx, rbx
jb 0x14008adb3
mov rax, qword [rsp + 0xd8]
mov rdi, r11
xor esi, esi
xor r8d, r8d
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
mov qword [rsp + 0x98], r11
mov qword [rsp + 0xc0], rcx
xor eax, eax
mov rcx, rbx
mov rbx, rdx
call fcn.14004fa20
mov rcx, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0x98]
xor esi, esi
xor r8d, r8d
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
mov rsi, qword [0x140a8a3c0]
mov r8, qword [0x140a8a3c8]
xor eax, eax
xor ebx, ebx
mov rcx, qword [rsp + 0xd8]
mov rdi, qword [rsp + 0xe0]
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
mov rcx, rbx
call fcn.140067a60
mov rcx, rax
mov edx, 4
call fcn.140067a60
mov eax, 1
xor ecx, ecx
call fcn.140067ae0
mov rcx, r9
call fcn.140067a60
mov eax, 1
xor ecx, ecx
call fcn.140067ae0
mov rcx, rsi
call fcn.140067a60
mov eax, 1
xor ecx, ecx
call fcn.140067ae0
mov rcx, rsi
nop
call fcn.140067a60
mov rcx, rax
call fcn.140067a60
mov r11, qword [rsp + 0x60]
cmp rdx, r11
jb 0x14008ae4d
sub rdx, rcx
lea rdi, [rdx - 2]
mov rdx, rdi
neg rdi
sar rdi, 0x3f
and r11, rdi
lea rcx, [r9 + r11]
mov rbx, rax
mov rdi, rdx
xor esi, esi
xor r8d, r8d
mov rax, r10
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
mov rax, r11
mov rcx, rdx
call fcn.140067ae0
mov rcx, rax
nop dword [rax + rax]
call fcn.140067a60
mov eax, 1
xor ecx, ecx
call fcn.140067ae0
mov rcx, r9
call fcn.140067a60
inc rbx
lea r9, [rcx + 1]
cmp rbx, r9
jge 0x14008aef9
cmp rsi, rbx
jbe 0x14008af26
movzx r9d, byte [rdx + rbx]
cmp r9b, 0xd
je 0x14008ae79
inc r8
nop dword [rax]
cmp rdi, r8
jae 0x14008aef2
mov qword [rsp + 0x90], rbx
mov byte [rsp + 0x47], r9b
mov rbx, r8
mov rcx, rdi
mov edi, 1
lea rsi, [0x14051bc60]
call fcn.14004b820
mov rdx, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0xe0]
movzx r9d, byte [rsp + 0x47]
mov r8, rbx
mov rdi, rcx
mov rcx, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x90]
mov byte [r8 + rax - 1], r9b
jmp 0x14008ae79
mov rbx, rax
mov rcx, r8
xor eax, eax
call fcn.14004fa20
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0xe0]
mov r9, qword [rsp + 0xd8]
mov r10, rax
mov rax, rbx
jmp 0x14008ae0d
mov rax, rbx
mov rcx, rsi
call fcn.140067a20
mov rcx, rax
call fcn.140067a60
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov byte [rsp + 0x18], cl
call fcn.1400653a0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
movzx ecx, byte [rsp + 0x18]
nop dword [rax]
jmp fcn.14008a580