Function at 0x506ec0
Capabilities:
Access peb ldr_data
Check os version

Disassembly:
lea r12, [rsp - 0x110]
cmp r12, qword [r14 + 0x10]
jbe 0x507e45
sub rsp, 0x190
mov qword [rsp + 0x188], rbp
lea rbp, [rsp + 0x188]
mov r13, 0
mov qword [rsp + 0x180], r13
mov qword [rsp + 0x198], rax
mov qword [rsp + 0x1c8], r9
mov qword [rsp + 0x1a8], rcx
mov qword [rsp + 0x1b8], rsi
mov qword [rsp + 0x1b0], rdi
mov qword [rsp + 0x1a0], rbx
mov qword [rsp + 0x1c0], r8
mov byte [rsp + 0x53], 0
mov byte [rbx + 0x12], 1
mov rdx, qword [0x00644ba8]
mov r10, qword [rdx + 0x10]
mov r11, qword [rdx + 0x18]
mov r12, qword [rdx + 0x20]
mov r13, qword [rdx + 0x28]
mov r15, qword [rdx]
mov rdx, qword [rdx + 8]
mov rax, r10
mov rbx, r11
mov rcx, r12
mov rdi, r13
mov rsi, r15
mov r8, rdx
call fcn.004dfda0
mov qword [rsp + 0x140], rax
mov qword [rsp + 0xe8], rbx
lea rax, [0x00537a20]
call fcn.0040cd00
mov rdx, qword [0x00644ba8]
mov r9, qword [rdx]
mov rdx, qword [rdx + 8]
mov qword [rax + 8], rdx
cmp dword [0x0069aa90], 0
jne 0x506faa
mov qword [rax], r9
jmp 0x506fb2
mov rdi, rax
call fcn.00462580
mov qword [rsp + 0x108], rax
mov qword [rax + 0x18], 0xa
lea rcx, [0x00543d7a]
mov qword [rax + 0x10], rcx
mov word [rax + 0x20], 0x12
mov dword [rax + 0x24], 0xe
mov qword [rax + 0x30], 0xe
lea rdx, [0x00544e26]
mov qword [rax + 0x28], rdx
lea rax, [0x00537a20]
call fcn.0040cd00
mov rcx, qword [0x00644ba8]
mov rdx, qword [rcx]
mov rcx, qword [rcx + 8]
mov qword [rax + 8], rcx
cmp dword [0x0069aa90], 0
jne 0x507019
mov qword [rax], rdx
jmp 0x507025
mov rdi, rax
nop dword [rax]
call fcn.00462500
mov qword [rsp + 0x110], rax
mov qword [rax + 0x18], 0xa
lea rcx, [0x00543d7a]
mov qword [rax + 0x10], rcx
mov word [rax + 0x20], 0x14
mov dword [rax + 0x24], 0xe
mov qword [rax + 0x30], 0xe
lea rcx, [0x00544e26]
mov qword [rax + 0x28], rcx
lea rax, [0x0052ea80]
call fcn.0040cd00
mov qword [rsp + 0x100], rax
mov rcx, qword [rsp + 0x1c0]
mov qword [rax], rcx
mov qword [rax + 8], 0xa
lea rax, [0x0051c320]
call fcn.0040cd00
mov qword [rax], 0x1000105
mov word [rax + 8], 0
mov rsi, qword [rsp + 0x100]
mov qword [rsi + 0x18], 0xa
mov qword [rsi + 0x20], 0xa
cmp dword [0x0069aa90], 0
nop
jne 0x5070c8
mov qword [rsi + 0x10], rax
jmp 0x5070d1
lea rdi, [rsi + 0x10]
call fcn.004623e0
movups xmmword [rsp + 0x148], xmm15
lea r9, [0x00507ea0]
mov qword [rsp + 0x148], r9
mov r9, qword [rsp + 0x1a0]
mov qword [rsp + 0x150], r9
lea r10, [rsp + 0x148]
mov qword [rsp + 0x180], r10
mov byte [rsp + 0x53], 1
mov rcx, qword [rsp + 0x1b0]
nop word [rax + rax]
nop
cmp rcx, 3
jbe 0x507e25
mov r10, qword [rsp + 0x1a8]
movzx r11d, byte [r10 + 3]
nop word [rax + rax]
cmp r11b, 1
jne 0x507225
cmp rcx, 4
jbe 0x507e19
movzx edx, byte [r10 + 4]
nop dword [rax]
cmp rcx, 5
jbe 0x507e0f
movzx edi, byte [r10 + 5]
cmp rcx, 6
jbe 0x507e05
movzx r8d, byte [r10 + 6]
nop
cmp rcx, 7
jbe 0x507dfa
movzx r11d, byte [r10 + 7]
lea rax, [rsp + 0x78]
movups xmmword [rax], xmm15
mov r12, qword [0x0063e0b8]
cmp r12, 0x10
mov ebx, 0x10
cmovl rbx, r12
mov r12, qword [0x0063e0b0]
cmp r12, rax
je 0x5071f1
mov byte [rsp + 0x52], dl
mov byte [rsp + 0x51], dil
mov byte [rsp + 0x50], r8b
mov byte [rsp + 0x4f], r11b
mov rcx, rbx
mov rbx, r12
call fcn.004631e0
lea rax, [rsp + 0x78]
movzx edx, byte [rsp + 0x52]
movzx edi, byte [rsp + 0x51]
movzx r8d, byte [rsp + 0x50]
movzx r11d, byte [rsp + 0x4f]
mov byte [rsp + 0x84], dl
mov byte [rsp + 0x85], dil
mov byte [rsp + 0x86], r8b
mov byte [rsp + 0x87], r11b
mov ebx, 0x10
mov rcx, rbx
call fcn.004bc500
nop dword [rax]
jmp 0x5074a5
cmp r11b, 3
jne 0x507280
mov rdi, qword [rsp + 0x1c8]
lea r8, [rdi - 2]
mov rdx, qword [rsp + 0x1b8]
nop
cmp rdx, r8
jb 0x507df2
cmp r8, 5
jb 0x507de5
add rdx, 0xfffffffffffffffb
neg rdx
sar rdx, 0x3f
and rdx, 5
lea rbx, [r10 + rdx]
lea rcx, [rdi - 7]
lea rax, [rsp + 0xb8]
call fcn.0044cce0
jmp 0x5074a5
cmp r11b, 4
jne 0x507caa
lea rax, [rsp + 0x88]
movups xmmword [rax], xmm15
nop word [rax + rax]
nop
cmp rcx, 4
jbe 0x507dd9
movzx edx, byte [r10 + 4]
mov byte [rsp + 0x88], dl
nop word [rax + rax]
nop
cmp rcx, 5
jbe 0x507dcf
movzx edx, byte [r10 + 5]
mov byte [rsp + 0x89], dl
nop word [rax + rax]
nop
cmp rcx, 6
jbe 0x507dc5
movzx edx, byte [r10 + 6]
mov byte [rsp + 0x8a], dl
nop word [rax + rax]
nop
cmp rcx, 7
jbe 0x507db9
movzx edx, byte [r10 + 7]
mov byte [rsp + 0x8b], dl
nop word [rax + rax]
nop
cmp rcx, 8
jbe 0x507daf
movzx edx, byte [r10 + 8]
mov byte [rsp + 0x8c], dl
nop word [rax + rax]
nop
cmp rcx, 9
jbe 0x507da5
movzx edx, byte [r10 + 9]
mov byte [rsp + 0x8d], dl
nop word [rax + rax]
nop
cmp rcx, 0xa
jbe 0x507d99
movzx edx, byte [r10 + 0xa]
mov byte [rsp + 0x8e], dl
nop word [rax + rax]
nop
cmp rcx, 0xb
jbe 0x507d8f
movzx edx, byte [r10 + 0xb]
mov byte [rsp + 0x8f], dl
nop word [rax + rax]
nop
cmp rcx, 0xc
jbe 0x507d85
movzx edx, byte [r10 + 0xc]
mov byte [rsp + 0x90], dl
nop word [rax + rax]
nop
cmp rcx, 0xd
jbe 0x507d7b
movzx edx, byte [r10 + 0xd]
mov byte [rsp + 0x91], dl
nop word [rax + rax]
nop
cmp rcx, 0xe
jbe 0x507d71
movzx edx, byte [r10 + 0xe]
mov byte [rsp + 0x92], dl
nop word [rax + rax]
nop
cmp rcx, 0xf
jbe 0x507d67
movzx edx, byte [r10 + 0xf]
mov byte [rsp + 0x93], dl
nop word [rax + rax]
nop
cmp rcx, 0x10
jbe 0x507d5d
movzx edx, byte [r10 + 0x10]
mov byte [rsp + 0x94], dl
nop word [rax + rax]
nop
cmp rcx, 0x11
jbe 0x507d53
movzx edx, byte [r10 + 0x11]
mov byte [rsp + 0x95], dl
nop word [rax + rax]
nop
cmp rcx, 0x12
jbe 0x507d49
movzx edx, byte [r10 + 0x12]
mov byte [rsp + 0x96], dl
nop word [rax + rax]
nop
cmp rcx, 0x13
jbe 0x507d3f
movzx edx, byte [r10 + 0x13]
mov byte [rsp + 0x97], dl
mov ebx, 0x10
mov rcx, rbx
nop
call fcn.004bc500
mov rdx, qword [rsp + 0x1c8]
lea rsi, [rdx - 2]
mov rcx, qword [rsp + 0x1b0]
nop dword [rax]
cmp rcx, rsi
jbe 0x507d37
lea rsi, [rdx - 1]
cmp rcx, rsi
jbe 0x507d2f
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0xf8], rax
mov rcx, qword [rsp + 0x1a8]
movzx eax, word [rdx + rcx - 2]
rol ax, 8
nop
mov ebx, 0xa
call fcn.0046f560
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x158], rax
mov qword [rsp + 0x160], rbx
lea rcx, [0x0054398f]
mov edi, 9
lea rax, [0x00542d34]
mov ebx, 3
call fcn.004c91e0
nop dword [rax]
test rbx, rbx
jne 0x507c35
mov ebx, 3
mov rcx, rax
lea rax, [0x00542d34]
call fcn.004c96e0
nop dword [rax]
test rbx, rbx
jne 0x507bc1
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0xf8]
mov qword [rsp], rax
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 8], rcx
mov byte [rsp + 0x10], 0x3a
call fcn.00402a80
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
cmp qword [rsp + 0x18], 0
jl 0x5075e9
xor eax, eax
lea rbx, [0x00575ac0]
mov ecx, 1
mov rdi, qword [rsp + 0xf8]
mov rsi, qword [rsp + 0x60]
lea r8, [0x00542bdf]
mov r9d, 2
mov r10, qword [rsp + 0x138]
mov r11, qword [rsp + 0x70]
call fcn.0044caa0
jmp 0x507616
xor eax, eax
mov rbx, qword [rsp + 0xf8]
mov rcx, qword [rsp + 0x60]
lea rdi, [0x00542b6a]
mov esi, 1
mov r8, qword [rsp + 0x138]
mov r9, qword [rsp + 0x70]
call fcn.0044c9c0
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0xd8], rax
lea rax, [0x00537520]
call fcn.0040cd00
mov qword [rax], 1
mov rcx, qword [rsp + 0x1c0]
mov qword [rax + 8], rcx
cmp dword [0x0069aa90], 0
jne 0x507659
mov rdx, qword [rsp + 0xe0]
mov qword [rax + 0x20], rdx
jmp 0x50766a
lea rdi, [rax + 0x20]
mov rdx, qword [rsp + 0xe0]
call fcn.00462500
mov qword [rsp + 0x128], rax
mov rcx, qword [rsp + 0x198]
mov rdx, qword [rcx + 8]
mov rax, qword [rdx + 0x10]
lea rbx, [rsp + 0x128]
call fcn.00404ee0
mov qword [rsp + 0x120], 0
mov rcx, qword [rsp + 0x198]
mov rdx, qword [rcx + 8]
mov rax, qword [rdx + 0x18]
lea rbx, [rsp + 0x120]
call fcn.00405c20
mov rcx, qword [rsp + 0x120]
cmp byte [rcx], 0
je 0x507b3e
lea rax, [0x00537520]
call fcn.0040cd00
mov qword [rax], 4
mov rcx, qword [rsp + 0x1c0]
mov qword [rax + 8], rcx
mov qword [rsp + 0x128], rax
mov rdx, qword [rsp + 0x198]
mov rbx, qword [rdx + 8]
mov rax, qword [rbx + 0x10]
lea rbx, [rsp + 0x128]
call fcn.00404ee0
mov qword [rsp + 0x120], 0
mov rcx, qword [rsp + 0x198]
mov rcx, qword [rcx + 8]
mov rax, qword [rcx + 0x18]
lea rbx, [rsp + 0x120]
call fcn.00405c20
mov rcx, qword [rsp + 0x120]
cmp byte [rcx], 0
je 0x507aca
mov rdx, qword [rcx + 0x10]
mov qword [rsp + 0xf0], rdx
lea rax, [rsp + 0x98]
mov rbx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x58]
call fcn.0044ce80
mov qword [rsp + 0x70], rbx
lea rax, [0x0052ec00]
call fcn.0040cd00
mov rdx, qword [rsp + 0x1c0]
mov qword [rax], rdx
mov rsi, qword [rsp + 0x70]
mov word [rax + 8], si
mov rsi, qword [rsp + 0x58]
mov qword [rax + 0x18], rsi
cmp dword [0x0069aa90], 0
jne 0x5077b2
mov r9, qword [rsp + 0xd8]
mov qword [rax + 0x10], r9
jmp 0x5077c5
lea rdi, [rax + 0x10]
mov r9, qword [rsp + 0xd8]
nop
call fcn.00462580
mov rbx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x110]
lea rdi, [0x00516140]
mov rsi, rax
xor r8d, r8d
mov rax, qword [rsp + 0x140]
call fcn.004dfc20
mov rdx, qword [rsp + 0x140]
mov r9, qword [rdx + 0x48]
mov rax, qword [rsp + 0xe8]
call r9
movups xmmword [rsp + 0x158], xmm15
mov rax, qword [rsp + 0xf0]
lea rbx, [rsp + 0x158]
nop
call fcn.00405c60
mov rbx, qword [rsp + 0x160]
mov rdx, qword [rsp + 0x158]
test rbx, rbx
je 0x507a52
nop
test al, al
je 0x507a52
nop
mov rax, rdx
lea rcx, [0x00542b6a]
mov edi, 1
xor esi, esi
mov r8, 0xffffffffffffffff
call fcn.004cf540
test rbx, rbx
jbe 0x507d25
mov rdx, qword [rax]
mov rsi, qword [rax + 8]
nop word [rax + rax]
nop
cmp rbx, 1
jbe 0x507d16
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x118], rdx
mov rcx, qword [rax + 0x10]
mov rbx, qword [rax + 0x18]
mov rax, rcx
call fcn.0046af00
movups xmmword [rsp + 0x168], xmm15
mov qword [rsp + 0x178], 0
mov rcx, qword [rsp + 0x118]
mov qword [rsp + 0x168], rcx
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x170], rcx
mov qword [rsp + 0x178], rax
lea rax, [0x0051bfa0]
mov ebx, 0xa
mov rcx, rbx
call fcn.00448ec0
mov qword [rsp + 0x130], rax
mov dword [rsp + 0x54], 0
mov byte [rsp + 0x54], 5
mov byte [rsp + 0x57], 1
lea rcx, [rsp + 0x54]
cmp rax, rcx
je 0x50791f
mov ecx, dword [rsp + 0x54]
mov dword [rax], ecx
lea rax, [rsp + 0x168]
call fcn.00506da0
cmp rbx, 6
mov ecx, 6
cmovl rcx, rbx
mov rdx, qword [rsp + 0x130]
lea rbx, [rdx + 4]
cmp rax, rbx
je 0x507958
mov rdx, rax
mov rax, rbx
mov rbx, rdx
call fcn.004631e0
lea rax, [0x0052ea80]
nop
call fcn.0040cd00
mov rcx, qword [rsp + 0x1c0]
mov qword [rax], rcx
mov qword [rax + 8], 0xa
mov qword [rax + 0x18], 0xa
mov qword [rax + 0x20], 0xa
cmp dword [0x0069aa90], 0
jne 0x50799f
mov rdx, qword [rsp + 0x130]
mov qword [rax + 0x10], rdx
jmp 0x5079b0
lea rdi, [rax + 0x10]
mov rdx, qword [rsp + 0x130]
call fcn.00462500
mov rbx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x108]
lea rdi, [0x00516040]
mov rsi, rax
xor r8d, r8d
mov rax, qword [rsp + 0x140]
call fcn.004dfc20
mov rdx, qword [rsp + 0x140]
mov rdx, qword [rdx + 0x48]
mov rax, qword [rsp + 0xe8]
call rdx
cmp dword [0x0069aa90], 0
jne 0x507a0f
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0x1a0]
mov qword [rcx + 0x28], rax
jmp 0x507a2b
mov rax, qword [rsp + 0x1a0]
lea rdi, [rax + 0x28]
mov rcx, qword [rsp + 0xe0]
call fcn.004624e0
mov rcx, rax
mov byte [rcx + 0x13], 1
mov byte [rsp + 0x53], 0
mov rdx, qword [rsp + 0x180]
mov rax, qword [rdx]
nop
call rax
mov rbp, qword [rsp + 0x188]
add rsp, 0x190
ret
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x108]
lea rdi, [0x00516040]
mov rsi, qword [rsp + 0x100]
xor r8d, r8d
nop dword [rax]
call fcn.004dfc20
mov rdx, qword [rsp + 0x140]
mov rdx, qword [rdx + 0x48]
mov rax, qword [rsp + 0xe8]
call rdx
mov rdx, qword [rsp + 0x1a0]
mov byte [rdx + 0x13], 0
mov byte [rsp + 0x53], 0
mov rdx, qword [rsp + 0x180]
mov r9, qword [rdx]
call r9
mov rbp, qword [rsp + 0x188]
add rsp, 0x190
ret
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x108]
lea rdi, [0x00516040]
mov rsi, qword [rsp + 0x100]
xor r8d, r8d
call fcn.004dfc20
mov rdx, qword [rsp + 0x140]
mov rdx, qword [rdx + 0x48]
mov rax, qword [rsp + 0xe8]
call rdx
mov rdx, qword [rsp + 0x1a0]
mov byte [rdx + 0x13], 0
mov byte [rsp + 0x53], 0
mov rdx, qword [rsp + 0x180]
mov r9, qword [rdx]
call r9
mov rbp, qword [rsp + 0x188]
add rsp, 0x190
ret
mov rax, qword [rsp + 0xe0]
test byte [rax], al
call fcn.004c4a60
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x108]
lea rdi, [0x00516040]
mov rsi, qword [rsp + 0x100]
xor r8d, r8d
call fcn.004dfc20
mov rcx, qword [rsp + 0x140]
mov rcx, qword [rcx + 0x48]
mov rax, qword [rsp + 0xe8]
call rcx
mov rcx, qword [rsp + 0x1a0]
mov byte [rcx + 0x13], 0
mov byte [rsp + 0x53], 0
mov rdx, qword [rsp + 0x180]
mov rcx, qword [rdx]
call rcx
mov rbp, qword [rsp + 0x188]
add rsp, 0x190
nop
ret
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x108]
lea rdi, [0x00516040]
mov rsi, qword [rsp + 0x100]
xor r8d, r8d
call fcn.004dfc20
mov rdx, qword [rsp + 0x140]
mov rdx, qword [rdx + 0x48]
mov rax, qword [rsp + 0xe8]
call rdx
mov rdx, qword [rsp + 0x1a0]
mov byte [rdx + 0x13], 0
mov byte [rsp + 0x53], 0
mov rdx, qword [rsp + 0x180]
mov r9, qword [rdx]
call r9
mov rbp, qword [rsp + 0x188]
add rsp, 0x190
ret
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x108]
lea rdi, [0x00516040]
mov rsi, qword [rsp + 0x100]
xor r8d, r8d
nop
call fcn.004dfc20
mov rdx, qword [rsp + 0x140]
mov rdx, qword [rdx + 0x48]
mov rax, qword [rsp + 0xe8]
call rdx
mov rdx, qword [rsp + 0x1a0]
mov byte [rdx + 0x13], 0
mov byte [rsp + 0x53], 0
mov rdx, qword [rsp + 0x180]
mov r9, qword [rdx]
call r9
mov rbp, qword [rsp + 0x188]
add rsp, 0x190
ret
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x108]
lea rdi, [0x00516040]
xor r8d, r8d
call fcn.004dfc20
mov rdx, qword [rsp + 0x140]
mov rdx, qword [rdx + 0x48]
mov rax, qword [rsp + 0xe8]
call rdx
mov rdx, qword [rsp + 0x1a0]
mov byte [rdx + 0x13], 0
mov byte [rsp + 0x53], 0
mov rdx, qword [rsp + 0x180]
mov r9, qword [rdx]
call r9
mov rbp, qword [rsp + 0x188]
add rsp, 0x190
ret
mov eax, 1
mov rcx, rbx
nop
call fcn.00462880
xor eax, eax
mov rcx, rbx
call fcn.00462880
mov rax, rsi
call fcn.00462880
mov rax, rsi
call fcn.00462880
mov eax, 0x13
call fcn.00462880
mov eax, 0x12
call fcn.00462880
mov eax, 0x11
call fcn.00462880
mov eax, 0x10
call fcn.00462880
mov eax, 0xf
call fcn.00462880
mov eax, 0xe
call fcn.00462880
mov eax, 0xd
call fcn.00462880
mov eax, 0xc
call fcn.00462880
mov eax, 0xb
call fcn.00462880
mov eax, 0xa
nop
call fcn.00462880
mov eax, 9
call fcn.00462880
mov eax, 8
call fcn.00462880
mov eax, 7
nop
call fcn.00462880
mov eax, 6
call fcn.00462880
mov eax, 5
call fcn.00462880
mov eax, 4
nop
call fcn.00462880
mov eax, 5
mov rcx, r8
call fcn.00462940
mov rcx, r8
call fcn.00462900
mov eax, 7
nop
call fcn.00462880
mov eax, 6
call fcn.00462880
mov eax, 5
call fcn.00462880
mov eax, 4
nop
call fcn.00462880
mov eax, 3
call fcn.00462880
nop
call fcn.004341a0
mov rbp, qword [rsp + 0x188]
add rsp, 0x190
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], r9
call fcn.00460180
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
mov r9, qword [rsp + 0x38]
jmp fcn.00506ec0