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

Disassembly:
lea r12, [rsp - 0xd0]
cmp r12, qword [r14 + 0x10]
jbe 0x516414
push rbp
mov rbp, rsp
sub rsp, 0x148
mov qword [rsp + 0x158], rax
lea rax, [0x0057de60]
call fcn.0040d620
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x158]
call fcn.005168e0
jmp 0x515bf5
mov rax, qword [rsp + 0x158]
call fcn.005168e0
test cl, cl
je 0x515ccb
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0x60], rbx
mov qword [rsp], rax
mov qword [rsp + 8], rbx
mov byte [rsp + 0x10], 0x23
call fcn.00403800
xorps xmm15, xmm15
mov r14, qword [0x011d4410]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rcx, qword [rsp + 0x18]
cmp rcx, 0xffffffffffffffff
je 0x515c4a
mov rdx, qword [rsp + 0x60]
nop
cmp rdx, rcx
jae 0x515c4f
jmp 0x51640e
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0xc8]
jmp 0x515cef
test rcx, rcx
je 0x515be8
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0xb0], rax
mov qword [rsp], rax
mov qword [rsp + 8], rcx
mov byte [rsp + 0x10], 0x3a
call fcn.00403800
xorps xmm15, xmm15
mov r14, qword [0x011d4410]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rcx, qword [rsp + 0x18]
nop dword [rax]
cmp rcx, 0xffffffffffffffff
je 0x515d3b
mov rdx, qword [rsp + 0x60]
cmp rdx, rcx
jb 0x516409
mov rax, qword [rsp + 0xb0]
mov rbx, rcx
mov rsi, rax
jmp 0x515da9
mov rax, qword [rsp + 0xc0]
add rsp, 0x148
pop rbp
ret
dec rcx
mov rdx, rcx
neg rdx
sar rdx, 0x3f
and edx, 1
add rax, rdx
test rcx, rcx
je 0x515d14
movzx edx, byte [rax]
cmp dl, 0x20
je 0x515cdc
nop dword [rax]
cmp dl, 9
je 0x515cdc
cmp dl, 0xa
je 0x515cdc
cmp dl, 0xd
je 0x515cdc
jmp 0x515d14
dec rcx
test rcx, rcx
je 0x515be8
movzx edx, byte [rax + rcx - 1]
cmp dl, 0x20
je 0x515d11
cmp dl, 9
je 0x515d11
cmp dl, 0xa
je 0x515d11
cmp dl, 0xd
je 0x515d11
jmp 0x515c60
nop
lea rax, [0x005700c0]
call fcn.0040d620
mov qword [rax + 8], 0x10
lea rcx, [0x0059c79c]
mov qword [rax], rcx
lea rcx, [0x005ef960]
mov rdx, qword [rsp + 0xc0]
mov qword [rdx + 0x18], rcx
cmp dword [0x011d4520], 0
je 0x515d86
call fcn.00470fa0
mov qword [r11], rax
mov rcx, qword [rdx + 0x20]
mov qword [r11 + 8], rcx
mov qword [rdx + 0x20], rax
mov rax, rdx
add rsp, 0x148
pop rbp
ret
dec rcx
mov rdi, rcx
neg rdi
sar rdi, 0x3f
and edi, 1
add rax, rdi
test rcx, rcx
je 0x515dd1
movzx edi, byte [rax]
cmp dil, 0x20
je 0x515d96
cmp dil, 9
je 0x515d96
nop dword [rax]
cmp dil, 0xa
je 0x515d96
cmp dil, 0xd
je 0x515d96
jmp 0x515dd1
dec rcx
test rcx, rcx
je 0x515df8
movzx edi, byte [rax + rcx - 1]
nop dword [rax + rax]
cmp dil, 0x20
je 0x515dce
cmp dil, 9
je 0x515dce
cmp dil, 0xa
je 0x515dce
cmp dil, 0xd
je 0x515dce
lea rdi, [rbx + 1]
nop dword [rax]
cmp rdx, rdi
jb 0x5163fe
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0xa8], rax
sub rdx, rbx
dec rdx
mov rbx, rdx
neg rdx
sar rdx, 0x3f
and rdi, rdx
lea rdx, [rsi + rdi]
jmp 0x515e75
lea rdi, [rdx + rsi*8]
lea rdi, [rdi - 0x20]
mov r8, qword [rsp + 0xf8]
mov qword [rdx + rsi*8 - 0x28], r8
movups xmm0, xmmword [rsp + 0x100]
movups xmmword [rdi], xmm0
movups xmm0, xmmword [rsp + 0x110]
movups xmmword [rdi + 0x10], xmm0
mov rax, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x140]
jmp 0x516212
test rbx, rbx
je 0x515be8
mov qword [rsp + 0xa0], rdx
mov qword [rsp + 0x50], rbx
mov qword [rsp], rdx
mov qword [rsp + 8], rbx
mov byte [rsp + 0x10], 0x20
call fcn.00403800
xorps xmm15, xmm15
mov r14, qword [0x011d4410]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rcx, qword [rsp + 0x18]
cmp rcx, 0xffffffffffffffff
je 0x515f0d
mov rdx, qword [rsp + 0x50]
cmp rdx, rcx
jb 0x5163f9
lea rax, [rcx + 1]
nop dword [rax + rax]
cmp rdx, rax
jb 0x5163f1
sub rdx, rcx
dec rdx
mov rsi, rdx
neg rdx
sar rdx, 0x3f
and rax, rdx
mov rdx, qword [rsp + 0xa0]
lea r8, [rdx + rax]
jmp 0x516399
xor eax, eax
mov rcx, qword [rsp + 0x50]
xor edx, edx
mov qword [rsp + 0x70], rcx
nop dword [rax + rax]
test rax, rax
je 0x51606b
cmp byte [rdx], 0x5b
je 0x515f3b
xor r8d, r8d
xor r9d, r9d
xor esi, esi
jmp 0x516073
mov qword [rsp + 0x90], rax
mov qword [rsp + 0xb8], rdx
mov qword [rsp], rdx
mov qword [rsp + 8], rax
mov byte [rsp + 0x10], 0x5d
call fcn.00403800
xorps xmm15, xmm15
mov r14, qword [0x011d4410]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rcx, qword [rsp + 0x18]
cmp rcx, 0xffffffffffffffff
je 0x516310
mov rdx, qword [rsp + 0x90]
cmp rdx, rcx
jb 0x516380
cmp rcx, 1
jb 0x516373
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0xd8], 0
movups xmmword [rsp + 0xe0], xmm15
lea rbx, [rcx - 1]
mov qword [rsp + 0x40], rbx
mov rdx, rbx
neg rdx
sar rdx, 0x3f
and edx, 1
mov rsi, qword [rsp + 0xb8]
lea rax, [rsi + rdx]
mov qword [rsp + 0x98], rax
lea rdx, [0x00516440]
mov qword [rsp + 0x120], rdx
lea rdi, [rsp + 0xd8]
mov qword [rsp + 0x128], rdi
lea rcx, [rsp + 0x120]
call fcn.005170a0
test rax, rax
jne 0x516271
mov rax, qword [rsp + 0x58]
lea rdx, [rax + 1]
mov rcx, qword [rsp + 0x90]
cmp rcx, rdx
jb 0x51636b
sub rcx, rax
lea rax, [rcx - 1]
mov rsi, rax
neg rsi
sar rsi, 0x3f
and rdx, rsi
mov rsi, qword [rsp + 0xd8]
mov r8, qword [rsp + 0xe0]
mov r9, qword [rsp + 0xe8]
mov r10, qword [rsp + 0xb8]
add rdx, r10
mov rcx, qword [rsp + 0x70]
jmp 0x516073
xor r8d, r8d
xor r9d, r9d
xor esi, esi
mov qword [rsp + 0x140], rdx
mov qword [rsp + 0x50], rax
mov r10, qword [rsp + 0xc0]
cmp qword [r10 + 0x28], 0
jne 0x5160f9
mov qword [rsp + 0x78], r8
mov qword [rsp + 0xf0], rsi
mov qword [rsp + 0x80], r9
call fcn.00465400
cmp dword [0x011d4520], 0
jne 0x5160c0
mov rdx, qword [rsp + 0xc0]
jmp 0x5160d8
call fcn.00470fa0
mov qword [r11], rax
mov rdx, qword [rsp + 0xc0]
mov rsi, qword [rdx + 0x28]
mov qword [r11 + 8], rsi
mov qword [rdx + 0x28], rax
mov rcx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0xf0]
mov r8, qword [rsp + 0x78]
mov r9, qword [rsp + 0x80]
mov r10, rdx
mov rbx, qword [r10 + 0x28]
mov rdx, qword [rsp + 0xa0]
mov qword [rsp + 0xf8], rdx
mov qword [rsp + 0x100], rcx
mov qword [rsp + 0x108], rsi
mov qword [rsp + 0x110], r8
mov qword [rsp + 0x118], r9
lea rax, [0x0056ae60]
mov rcx, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0x48]
call fcn.004679a0
mov rcx, qword [rax + 0x10]
mov rbx, qword [rax + 8]
inc rbx
mov rdx, qword [rax]
cmp rcx, rbx
jae 0x5161a5
mov qword [rsp + 0x138], rax
mov rax, rdx
mov edi, 1
lea rsi, [0x0057b620]
call fcn.0046a960
mov rdx, qword [rsp + 0x138]
mov qword [rdx + 0x10], rcx
cmp dword [0x011d4520], 0
je 0x516199
call fcn.00470fa0
mov qword [r11], rax
mov rsi, qword [rdx]
mov qword [r11 + 8], rsi
mov qword [rdx], rax
mov rcx, rax
mov rax, rdx
mov rdx, rcx
mov qword [rax + 8], rbx
lea rsi, [rbx + rbx*4]
lea rbx, [rdx + rsi*8]
lea rbx, [rbx - 0x28]
cmp dword [0x011d4520], 0
nop dword [rax]
je 0x515e2f
mov qword [rsp + 0x130], rdx
mov qword [rsp + 0x88], rsi
lea rax, [0x0057b620]
lea rcx, [rsp + 0xf8]
call fcn.00410800
mov rdx, qword [rsp + 0x130]
mov rsi, qword [rsp + 0x88]
jmp 0x515e2f
dec rbx
mov rsi, rbx
neg rsi
sar rsi, 0x3f
and esi, 1
add rdx, rsi
test rbx, rbx
je 0x516240
movzx esi, byte [rdx]
nop word [rax + rax]
cmp sil, 0x20
je 0x5161ff
cmp sil, 9
je 0x5161ff
cmp sil, 0xa
je 0x5161ff
cmp sil, 0xd
je 0x5161ff
jmp 0x516240
dec rbx
nop dword [rax]
test rbx, rbx
je 0x515be8
movzx esi, byte [rbx + rdx - 1]
cmp sil, 0x20
je 0x51623a
cmp sil, 9
je 0x51623a
nop word [rax + rax]
cmp sil, 0xa
je 0x51623a
cmp sil, 0xd
je 0x51623a
jmp 0x515e80
xor eax, eax
lea rbx, [0x0059d32e]
mov ecx, 0x12
mov rdi, qword [rsp + 0x98]
mov rsi, qword [rsp + 0x40]
call fcn.004504c0
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0xd0], rax
lea rax, [0x005700c0]
call fcn.0040d620
mov rdx, qword [rsp + 0x68]
mov qword [rax + 8], rdx
cmp dword [0x011d4520], 0
jne 0x5162ce
mov rcx, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0xc0]
jmp 0x5162f2
call fcn.00470fc0
mov rcx, qword [rsp + 0xd0]
mov qword [r11], rcx
mov qword [r11 + 8], rax
mov rdx, qword [rsp + 0xc0]
mov rbx, qword [rdx + 0x20]
mov qword [r11 + 0x10], rbx
mov qword [rax], rcx
lea rcx, [0x005ef960]
mov qword [rdx + 0x18], rcx
mov qword [rdx + 0x20], rax
mov rax, rdx
add rsp, 0x148
pop rbp
ret
nop
lea rax, [0x005700c0]
call fcn.0040d620
mov qword [rax + 8], 0x1a
lea rcx, [0x005a0dc9]
mov qword [rax], rcx
lea rcx, [0x005ef960]
mov rdx, qword [rsp + 0xc0]
mov qword [rdx + 0x18], rcx
cmp dword [0x011d4520], 0
je 0x51635b
call fcn.00470fa0
mov qword [r11], rax
mov rcx, qword [rdx + 0x20]
mov qword [r11 + 8], rcx
mov qword [rdx + 0x20], rax
mov rax, rdx
add rsp, 0x148
pop rbp
ret
mov rax, rdx
call fcn.00471400
mov eax, 1
xor ecx, ecx
call fcn.00471400
nop
call fcn.00471380
dec rsi
mov r9, rsi
neg r9
sar r9, 0x3f
and r9d, 1
add r8, r9
test rsi, rsi
je 0x5163c0
movzx r9d, byte [r8]
cmp r9b, 0x20
je 0x516385
cmp r9b, 9
je 0x516385
cmp r9b, 0xa
je 0x516385
cmp r9b, 0xd
je 0x516385
jmp 0x5163c0
dec rsi
nop
test rsi, rsi
je 0x5163e6
movzx r9d, byte [r8 + rsi - 1]
cmp r9b, 0x20
je 0x5163bc
cmp r9b, 9
je 0x5163bc
cmp r9b, 0xa
je 0x5163bc
nop dword [rax]
cmp r9b, 0xd
je 0x5163bc
mov rax, rsi
mov rdx, r8
jmp 0x515f16
mov rcx, rdx
call fcn.00471400
call fcn.00471380
mov rax, rdi
mov rcx, rdx
call fcn.00471400
call fcn.00471380
call fcn.00471380
nop
mov qword [rsp + 8], rax
call fcn.0046f060
mov rax, qword [rsp + 8]
jmp fcn.00515ba0