Function at 0x50e0e0
Capabilities:
Access peb ldr_data

Disassembly:
lea r12, [rsp - 0x778]
cmp r12, qword [r14 + 0x10]
jbe 0x50f175
sub rsp, 0x7f8
mov qword [rsp + 0x7f0], rbp
lea rbp, [rsp + 0x7f0]
mov qword [rsp + 0x808], rbx
mov qword [rsp + 0x800], rax
lea rdi, [rsp + 0x1f0]
mov ecx, 0xc0
mov rdx, rax
xor eax, eax
rep stosq qword [rdi], rax
lea rdi, [rsp + 0x190]
lea rdi, [rdi - 0x20]
nop word [rax + rax]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.004618eb
mov rbp, qword [rbp]
lea rdi, [rsp + 0x130]
lea rdi, [rdi - 0x20]
nop
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.004618eb
mov rbp, qword [rbp]
lea rdi, [rsp + 0xd0]
lea rdi, [rdi - 0x20]
nop
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.004618eb
mov rbp, qword [rbp]
lea rdi, [rsp + 0x70]
lea rdi, [rdi - 0x20]
nop dword [rax]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.004618eb
mov rbp, qword [rbp]
mov rax, rdx
xor ecx, ecx
lea rbx, [rsp + 0x1f0]
call fcn.0050dc40
mov rdx, qword [rsp + 0x800]
test byte [rdx], al
lea rsi, [rsp + 0x190]
mov qword [rsp], rsi
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], 0xc
mov qword [rsp + 0x28], 0xc
call fcn.00512260
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rdx, [rsp + 0x130]
mov qword [rsp], rdx
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
lea rsi, [rsp + 0x190]
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], 0xc
mov qword [rsp + 0x28], 0xc
call fcn.00512260
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rdx, [rsp + 0xd0]
mov qword [rsp], rdx
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
lea rsi, [rsp + 0x130]
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], 0xc
mov qword [rsp + 0x28], 0xc
call fcn.00512260
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rdx, [rsp + 0x70]
mov qword [rsp], rdx
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
lea rdx, [rsp + 0xd0]
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], 0xc
mov qword [rsp + 0x28], 0xc
call fcn.00512260
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rax, [rsp + 0x190]
lea rbx, [rsp + 0x1f0]
mov ecx, 1
call fcn.0050dc40
lea rax, [rsp + 0x130]
lea rbx, [rsp + 0x1f0]
mov ecx, 3
call fcn.0050dc40
lea rax, [rsp + 0xd0]
lea rbx, [rsp + 0x1f0]
mov ecx, 7
call fcn.0050dc40
lea rax, [rsp + 0x70]
lea rbx, [rsp + 0x1f0]
mov ecx, 0xf
nop dword [rax]
call fcn.0050dc40
lea rdx, [rsp + 0x190]
mov qword [rsp], rdx
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], 0xc
mov qword [rsp + 0x28], 0xc
mov rsi, qword [rsp + 0x800]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], 0xc
mov qword [rsp + 0x40], 0xc
call fcn.00511b00
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rdx, [rsp + 0x130]
mov qword [rsp], rdx
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], 0xc
mov qword [rsp + 0x28], 0xc
mov rsi, qword [rsp + 0x800]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], 0xc
mov qword [rsp + 0x40], 0xc
call fcn.00511b00
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rdx, [rsp + 0xd0]
mov qword [rsp], rdx
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], 0xc
mov qword [rsp + 0x28], 0xc
mov rsi, qword [rsp + 0x800]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], 0xc
mov qword [rsp + 0x40], 0xc
call fcn.00511b00
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rax, [rsp + 0x190]
lea rbx, [rsp + 0x1f0]
mov ecx, 2
call fcn.0050dc40
lea rax, [rsp + 0x130]
lea rbx, [rsp + 0x1f0]
mov ecx, 4
nop dword [rax + rax]
call fcn.0050dc40
lea rax, [rsp + 0xd0]
lea rbx, [rsp + 0x1f0]
mov ecx, 8
call fcn.0050dc40
lea rdx, [rsp + 0x190]
mov qword [rsp], rdx
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], 0xc
mov qword [rsp + 0x28], 0xc
call fcn.00512260
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rdx, [rsp + 0x130]
mov qword [rsp], rdx
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], 0xc
mov qword [rsp + 0x28], 0xc
call fcn.00512260
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rax, [rsp + 0x190]
lea rbx, [rsp + 0x1f0]
mov ecx, 5
call fcn.0050dc40
lea rax, [rsp + 0x130]
lea rbx, [rsp + 0x1f0]
mov ecx, 9
call fcn.0050dc40
lea rdx, [rsp + 0xd0]
mov qword [rsp], rdx
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
lea rsi, [rsp + 0x190]
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], 0xc
mov qword [rsp + 0x28], 0xc
mov r8, qword [rsp + 0x800]
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], 0xc
mov qword [rsp + 0x40], 0xc
call fcn.00511b00
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rdx, [rsp + 0x130]
mov qword [rsp], rdx
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], 0xc
mov qword [rsp + 0x28], 0xc
mov rsi, qword [rsp + 0x800]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], 0xc
mov qword [rsp + 0x40], 0xc
call fcn.00511b00
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rax, [rsp + 0xd0]
lea rbx, [rsp + 0x1f0]
mov ecx, 6
call fcn.0050dc40
lea rax, [rsp + 0x130]
lea rbx, [rsp + 0x1f0]
mov ecx, 0xa
call fcn.0050dc40
lea rdx, [rsp + 0x190]
mov qword [rsp], rdx
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], 0xc
mov qword [rsp + 0x28], 0xc
call fcn.00512260
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rdx, [rsp + 0xd0]
mov qword [rsp], rdx
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], 0xc
mov qword [rsp + 0x28], 0xc
call fcn.00512260
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rax, [rsp + 0x190]
lea rbx, [rsp + 0x1f0]
mov ecx, 0xb
call fcn.0050dc40
lea rax, [rsp + 0xd0]
lea rbx, [rsp + 0x1f0]
mov ecx, 0xd
call fcn.0050dc40
lea rdx, [rsp + 0x190]
mov qword [rsp], rdx
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], 0xc
mov qword [rsp + 0x28], 0xc
mov rsi, qword [rsp + 0x800]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], 0xc
mov qword [rsp + 0x40], 0xc
call fcn.00511b00
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rdx, [rsp + 0xd0]
mov qword [rsp], rdx
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], 0xc
mov qword [rsp + 0x28], 0xc
mov rdx, qword [rsp + 0x800]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], 0xc
mov qword [rsp + 0x40], 0xc
call fcn.00511b00
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rax, [rsp + 0x190]
lea rbx, [rsp + 0x1f0]
mov ecx, 0xc
call fcn.0050dc40
lea rax, [rsp + 0xd0]
lea rbx, [rsp + 0x1f0]
mov ecx, 0xe
nop
call fcn.0050dc40
mov rdx, qword [rsp + 0x808]
mov rax, qword [rdx + 0x18]
shr rax, 0x3e
and eax, 0x3f
call fcn.0050dce0
mov qword [rsp + 0x60], rax
mov rdx, qword [rsp + 0x800]
mov qword [rsp], rdx
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
lea rsi, [rsp + 0x1f0]
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], 0xc0
mov qword [rsp + 0x28], 0xc0
mov qword [rsp + 0x30], rax
call fcn.005106a0
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov eax, 0xfe
mov rcx, qword [rsp + 0x60]
jmp 0x50eb97
mov rax, rdx
call fcn.0050dce0
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x58], rbx
lea rcx, [rsp + 0x190]
mov qword [rsp], rcx
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
lea rdx, [rsp + 0x1f0]
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], 0xc0
mov qword [rsp + 0x28], 0xc0
mov qword [rsp + 0x30], rax
call fcn.005106a0
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rcx, [rsp + 0x1b0]
mov qword [rsp], rcx
mov qword [rsp + 8], 4
mov qword [rsp + 0x10], 8
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x18], rcx
call fcn.005100e0
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rcx, [rsp + 0x130]
mov qword [rsp], rcx
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
mov rdx, qword [rsp + 0x800]
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], 0xc
mov qword [rsp + 0x28], 0xc
lea rbx, [rsp + 0x190]
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], 0xc
mov qword [rsp + 0x40], 0xc
call fcn.00511b00
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rcx, [rsp + 0x130]
mov qword [rsp], rcx
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], 0xc
mov qword [rsp + 0x28], 0xc
mov rdx, qword [rsp + 0x800]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], 0xc
mov qword [rsp + 0x40], 0xc
mov rbx, qword [rsp + 0x60]
mov qword [rsp + 0x48], rbx
call fcn.0050ffe0
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rcx, qword [rsp + 0x800]
mov qword [rsp], rcx
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
lea rdx, [rsp + 0x130]
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], 0xc
mov qword [rsp + 0x28], 0xc
lea rbx, [rsp + 0x190]
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], 0xc
mov qword [rsp + 0x40], 0xc
mov rsi, qword [rsp + 0x50]
mov qword [rsp + 0x48], rsi
call fcn.0050ffe0
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x60]
or rcx, rdx
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x50], rcx
nop dword [rax]
cmp rax, 4
jbe 0x50edb4
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x800]
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
call fcn.00512260
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x800]
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
call fcn.00512260
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x800]
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
call fcn.00512260
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x800]
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
call fcn.00512260
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x800]
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
nop dword [rax]
call fcn.00512260
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x68]
lea rcx, [rax - 5]
mov qword [rsp + 0x68], rcx
cmp rcx, 0xc0
jae 0x50ed93
mov rdx, rcx
and ecx, 0x3f
lea rbx, [rcx - 0x40]
neg rbx
cmp rbx, 0x40
sbb rbx, rbx
mov rcx, rdx
shr rdx, 6
mov rsi, qword [rsp + 0x808]
mov rdi, qword [rsi + rdx*8]
shr rdi, cl
mov rdx, qword [rsi + rdx*8 + 8]
neg rcx
shl rdx, cl
and rdx, rbx
add rdx, rdi
and edx, 0x3f
jmp 0x50e96c
mov rbx, rcx
shr rcx, 6
mov rsi, qword [rsp + 0x808]
mov rdx, qword [rsi + rcx*8]
mov rcx, rbx
shr rdx, cl
and edx, 0x3f
jmp 0x50e96c
mov rax, qword [rsp + 0x800]
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
call fcn.00512260
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x800]
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
call fcn.00512260
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x800]
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
call fcn.00512260
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x800]
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
call fcn.00512260
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x800]
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
call fcn.00512260
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x808]
mov rax, qword [rax]
shl rax, 1
and eax, 0x3f
call fcn.0050dce0
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x58], rbx
lea rcx, [rsp + 0x190]
mov qword [rsp], rcx
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
lea rdx, [rsp + 0x1f0]
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], 0xc0
mov qword [rsp + 0x28], 0xc0
mov qword [rsp + 0x30], rax
nop dword [rax]
call fcn.005106a0
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rax, [rsp + 0x1b0]
mov qword [rsp], rax
mov qword [rsp + 8], 4
mov qword [rsp + 0x10], 8
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x18], rax
call fcn.005100e0
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rax, [rsp + 0x130]
mov qword [rsp], rax
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
mov rcx, qword [rsp + 0x800]
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], 0xc
mov qword [rsp + 0x28], 0xc
lea rdx, [rsp + 0x190]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], 0xc
mov qword [rsp + 0x40], 0xc
call fcn.00511b00
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rax, [rsp + 0x130]
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
mov rcx, qword [rsp + 0x800]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], 0xc
mov qword [rsp + 0x40], 0xc
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x48], rdx
call fcn.0050ffe0
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x800]
mov qword [rsp], rax
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0xc
lea rax, [rsp + 0x130]
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], 0xc
mov qword [rsp + 0x28], 0xc
lea rax, [rsp + 0x190]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 0xc
mov qword [rsp + 0x40], 0xc
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x48], rax
call fcn.0050ffe0
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rbp, qword [rsp + 0x7f0]
add rsp, 0x7f8
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call fcn.0045f280
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp fcn.0050e0e0