Function at 0x51ccc0
Capabilities:
Access peb ldr_data

Disassembly:
lea r12, [rsp - 0x80]
cmp r12, qword [r14 + 0x10]
jbe 0x51d0f8
sub rsp, 0x100
mov qword [rsp + 0xf8], rbp
lea rbp, [rsp + 0xf8]
mov qword [rsp + 0x110], rbx
test rcx, rcx
jbe 0x51d0f0
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x118], rcx
mov qword [rsp + 0x110], rbx
test byte [rax], al
mov rcx, qword [0x008a10c0]
test byte [rcx], al
mov rdx, qword [rbx]
nop
mov qword [rsp], rax
mov qword [rsp + 8], 8
mov qword [rsp + 0x10], 0xc
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], 0x100
mov qword [rsp + 0x28], 0x100
shl rdx, 1
mov rcx, rdx
and rdx, 0x7f
mov rsi, rdx
shr rdx, 6
neg rdx
mov qword [rsp + 0x70], rdx
add rsi, 0xffffffffffffff81
neg rsi
and rsi, rdx
not rdx
and rcx, rdx
and rcx, 0x7f
or rcx, rsi
mov rdx, rcx
shr rcx, 1
and rdx, 1
add rcx, rdx
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x30], rcx
call fcn.00520a00
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x108]
lea rcx, [rax + 0x20]
mov qword [rsp], rcx
mov qword [rsp + 8], 4
mov qword [rsp + 0x10], 8
mov rcx, qword [rsp + 0x70]
and rcx, 1
mov qword [rsp + 0x18], rcx
nop
call fcn.00520360
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x108]
mov qword [rax + 0x40], 1
movabs rcx, 0xffffffff00000000
mov qword [rax + 0x48], rcx
mov qword [rax + 0x50], 0xffffffffffffffff
mov edx, 0xfffffffe
mov qword [rax + 0x58], rdx
lea rdi, [rsp + 0x98]
lea rdi, [rdi - 0x20]
nop word [rax + rax]
nop dword [rax]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.004637ab
mov rbp, qword [rbp]
mov qword [rsp + 0xd8], 1
mov qword [rsp + 0xe0], rcx
mov qword [rsp + 0xe8], 0xffffffffffffffff
mov qword [rsp + 0xf0], rdx
mov rcx, qword [rsp + 0x110]
mov rdx, qword [rsp + 0x118]
mov rbx, qword [rsp + 0x88]
mov esi, 1
mov edi, 5
nop dword [rax]
jmp 0x51d027
mov qword [rsp + 0x80], rsi
mov rax, qword [0x008a10c0]
test byte [rax], al
nop
lea rcx, [rsp + 0x98]
mov qword [rsp], rcx
mov qword [rsp + 8], 8
mov qword [rsp + 0x10], 0xc
shl rsi, 0xb
add rax, rsi
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], 0x100
mov qword [rsp + 0x28], 0x100
mov rax, rdi
shr rdi, 6
neg rdi
mov qword [rsp + 0x68], rdi
lea rbx, [rax - 0x7f]
neg rbx
and rbx, rdi
not rdi
and rax, rdi
or rax, rbx
mov rbx, rax
shr rax, 1
and rbx, 1
add rax, rbx
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x30], rax
call fcn.00520a00
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x108]
mov qword [rsp], rax
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], 0xc
mov qword [rsp + 0x28], 0xc
lea rcx, [rsp + 0x98]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], 8
mov qword [rsp + 0x40], 0xc
mov rcx, qword [rsp + 0x68]
and rcx, 1
mov qword [rsp + 0x48], rcx
mov rcx, qword [rsp + 0x90]
mov qword [rsp + 0x50], rcx
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x58], rdx
call fcn.005215e0
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x80]
lea rsi, [rax + 1]
mov rax, qword [rsp + 0x78]
lea rdi, [rax + 6]
mov rbx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x90]
or rbx, rax
mov rax, qword [rsp + 0x110]
mov rcx, qword [rsp + 0x118]
mov rax, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x110]
mov rdx, qword [rsp + 0x118]
cmp rsi, 0x2b
jge 0x51d0bd
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x78], rdi
nop dword [rax + rax]
cmp rdi, 0xc0
jae 0x51d09e
mov r8, rdi
shr rdi, 6
cmp rdx, rdi
jbe 0x51d0e5
mov r9, qword [rcx + rdi*8]
mov r10, rcx
mov rcx, r8
shr r9, cl
lea r11, [rdi + 1]
cmp rdx, r11
jbe 0x51d0d8
and rcx, 0x3f
lea r11, [rcx - 0x40]
neg r11
cmp r11, 0x40
sbb r11, r11
mov rdi, qword [r10 + rdi*8 + 8]
mov rcx, r8
neg rcx
shl rdi, cl
and rdi, r11
add rdi, r9
and rdi, 0x7f
jmp 0x51cea5
mov r8, rdi
shr rdi, 6
cmp rdx, rdi
jbe 0x51d0cd
mov rdi, qword [rcx + rdi*8]
mov rcx, r8
shr rdi, cl
and rdi, 0x7f
jmp 0x51cea5
mov rbp, qword [rsp + 0xf8]
add rsp, 0x100
ret
mov rax, rdi
mov rcx, rdx
call fcn.00463500
mov rax, r11
mov rcx, rdx
nop
call fcn.00463500
mov rax, rdi
mov rcx, rdx
call fcn.00463500
xor eax, eax
call fcn.004634e0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call fcn.00460de0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp fcn.0051ccc0