Function at 0x450490
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push r15
push r14
mov eax, 0x1268
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.005293e0
sub rsp, rax
movaps xmmword [rsp + 0x1240], xmm6
movaps xmmword [rsp + 0x1250], xmm7
lea rdi, [rsp + 0x240]
mov r14, rdx
mov rax, qword [rcx + 0x10]
mov r15, qword [rcx + 0xd8]
mov qword [rsp + 0x12b0], rcx
mov r13, qword [rcx + 0xb8]
mov qword [rsp + 0xe0], rdi
mov qword [rsp + 0x12c0], r8
mov qword [rsp + 0xb8], rax
mov rax, qword [rcx + 0x48]
mov qword [rsp + 0x12c8], r9
mov qword [rsp + 0x88], rax
mov rax, qword [rcx + 0x50]
mov qword [rsp + 0x70], rax
mov rax, qword [rcx + 0x78]
mov qword [rsp + 0xe8], rax
mov rax, qword [rcx + 0xc0]
mov qword [rsp + 0xd8], rax
mov rax, qword [rcx + 0xd0]
mov ecx, 0x200
mov qword [rsp + 0x78], rax
xor eax, eax
rep stosq qword [rdi], rax
mov rbx, qword [r15 + 0x128]
mov rsi, qword [r15 + 0x120]
mov rdx, rbx
mov rcx, rsi
call sub.msvcrt.dll_strcmp
test eax, eax
mov qword [rsp + 0xb0], 0
mov byte [rsp + 0xaf], 0
jne 0x4517b3
cmp byte [r15 + 0x58], 0
mov dword [rsp + 0xa8], 0
jne 0x450599
mov rax, qword [rsp + 0x78]
cmp dword [rax], 3
je 0x451918
mov rax, qword [0x00546390]
cmp byte [r15 + 0x59], 0
mov qword [r14 + 0x4e8e8], 0
mov qword [r14 + 0x4e8d8], 0
mov qword [r14 + 0x4e8f0], rax
mov rax, qword [rsp + 0x12c8]
mov qword [r14 + 0x4e8e0], rax
jne 0x451749
cmp dword [r15 + 0x148], 9
je 0x451739
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x38]
test eax, eax
mov dword [rsp + 0x118], eax
je 0x450b05
lea rax, [r14 + 0x4e840]
movsd xmm7, qword [0x005463a8]
mov r12, r13
mov qword [rsp + 0xa0], 0
mov r13, r14
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0x90], 0
mov r14, r15
cmp dword [r12 + 4], 4
mov eax, dword [rsp + 0x90]
mov dword [rsp + 0x6c], eax
jne 0x450662
nop word [rax + rax]
mov ecx, 1
call fcn.0052aac0
cmp dword [r12 + 4], 4
je 0x450650
mov rbx, qword [rsp + 0x70]
mov rax, qword [rsp + 0xa0]
add rax, qword [rbx + 0x40]
cmp byte [r14 + 0x58], 0
mov ebx, dword [rsp + 0x6c]
mov edx, dword [rax + 0x220]
mov eax, dword [rax + 0x228]
mov dword [r13 + 0x15fccc], ebx
mov dword [r13 + 0x15fcdc], edx
mov dword [r13 + 0x15fce0], eax
je 0x450dc2
mov dword [rsp + 0x68], 1
mov r15d, 1
mov rax, qword [rsp + 0x90]
xor ebp, ebp
lea rbx, [rax*4]
shl rax, 3
mov qword [rsp + 0x98], rax
lea rax, [r12 + 0x98]
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x68]
mov dword [rsp + 0x50], eax
mov qword [rsp + 0x60], rax
jmp 0x4506fd
mov ecx, 1
call fcn.0052aac0
cmp dword [r12 + 4], 4
je 0x4506f3
cmp r15d, dword [rsp + 0x50]
jae 0x450923
lea esi, [r15 + rbp]
mov ebx, r15d
mov dword [rsp + 0x54], 1
mov rdi, qword [rsp + 0x58]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
pxor xmm1, xmm1
mov dword [r13 + 0x4e8f8], ebp
pxor xmm0, xmm0
mov dword [r13 + 0x4e8fc], ebx
mov dword [r13 + 0x15fcd8], ebx
mov rcx, rdi
cvtsi2sd xmm1, rsi
cvtsi2sd xmm0, qword [rsp + 0x60]
divsd xmm0, xmm1
movsd qword [r13 + 0x4e8f0], xmm0
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [r14 + 0x148]
cmp eax, 9
je 0x450793
mov rdi, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x80]
mov rdx, qword [rdi + 0x48]
cmp dword [rdx + rsi], 1
je 0x450b91
cmp byte [r14 + 0x58], 0
jne 0x4507d3
mov rdi, qword [rsp + 0x78]
mov edx, dword [rdi]
test edx, edx
jne 0x4509f1
cmp byte [r13 + 0x15fd00], 0
jne 0x450ca1
cmp byte [r13 + 0x15ff48], 0
jne 0x450ced
cmp byte [r13 + 0x160192], 0
jne 0x450d39
mov eax, dword [rsp + 0x6c]
mov r9, qword [rsp + 0x12c0]
mov rdx, r13
mov r8d, dword [rsp + 0xa8]
mov rcx, qword [rsp + 0x12b0]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x54]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x12c8]
mov qword [rsp + 0x20], rax
call fcn.0044e6a0
cmp eax, 0xffffffff
je 0x450aba
cmp byte [r14 + 0x59], 0
je 0x450940
cmp byte [r13 + 0x15cb90], 0
jne 0x45083a
cmp byte [r12 + 0x14], 0
jne 0x45094c
mov rax, qword [rsp + 0x88]
cmp dword [rax + 0xc], 0xa
je 0x450af7
mov ecx, dword [r13 + 0x14cb88]
movsd xmm0, qword [r13 + 0x154b90]
cmp ecx, 1
jbe 0x450880
lea edx, [rcx - 2]
lea rax, [r13 + 0x154b98]
lea rdx, [r13 + rdx*8 + 0x154ba0]
addsd xmm0, qword [rax]
add rax, 8
cmp rax, rdx
jne 0x450873
cmp byte [r14 + 0x58], 0
je 0x450ae5
ucomisd xmm0, qword [0x005463a8]
ja 0x451a6b
cmp ecx, 0xfff
je 0x4519dc
cmp byte [r13 + 0x15cb90], 0
jne 0x4508dd
mov rcx, qword [rsp + 0x12b0]
mov rdx, r13
call fcn.00406f60
cmp byte [r12 + 0x14], 0
je 0x45129f
add ebp, r15d
sub dword [rsp + 0x50], r15d
cmp dword [rsp + 0x68], ebp
ja 0x4506fd
cmp byte [r14 + 0x59], 0
jne 0x451b16
cmp byte [r12 + 0x14], 0
je 0x450b6f
add qword [rsp + 0x90], 1
add qword [rsp + 0xa0], 0x238
mov rax, qword [rsp + 0x90]
cmp dword [rsp + 0x118], eax
ja 0x450634
jmp 0x450b6f
mov esi, dword [rsp + 0x68]
mov ebx, dword [rsp + 0x50]
mov dword [rsp + 0x54], 0
jmp 0x45071f
cmp byte [r12 + 0x14], 0
je 0x4508a5
mov rcx, qword [r13 + 0x15cb98]
mov rsi, qword [rsp + 0x12c8]
lea rdi, [r12 + 0x48]
call fcn.00426930
lea rcx, [r13 + 0x15cb98]
movapd xmm6, xmm0
imul rsi, rbx
call sub.KERNEL32.dll_QueryPerformanceCounter
mov edx, dword [r13 + 0x14cb88]
mov rcx, rdi
mov rax, rdx
lea rdx, [r13 + rdx*8]
add eax, 1
mov qword [rdx + 0x14cb90], rsi
movsd qword [rdx + 0x154b90], xmm6
cmp eax, 0x1000
mov edx, 0
cmove eax, edx
mov dword [r13 + 0x14cb88], eax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [r14 + 0x148], 9
je 0x450e42
mov rax, qword [rsp + 0x98]
add rax, qword [r12 + 0xe0]
add qword [rax], rsi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [r14 + 0x59], 0
je 0x4508a5
jmp 0x45083a
cmp edx, 1
je 0x450bb2
cmp edx, 3
jne 0x4507d3
mov rcx, qword [rsp + 0x12b0]
mov eax, ebp
mov esi, ebx
mov qword [r13 + 0x15e5d8], rax
mov r9, rsi
mov r8d, 0x67
mov rdx, r13
call fcn.0044dc20
cmp eax, 0xffffffff
je 0x450aba
cmp byte [r13 + 0x15fd00], 0
jne 0x4513b0
cmp byte [r13 + 0x15ff48], 0
jne 0x451372
cmp byte [r13 + 0x160192], 0
je 0x4507d3
shl rsi, 2
mov rdx, qword [r13 + 0x1601e0]
mov rcx, qword [rsp + 0x12b0]
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x38], 0
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov r9, qword [r13 + 0x160318]
mov r8, qword [r13 + 0x160310]
call fcn.00474420
cmp eax, 0xffffffff
jne 0x4507d3
mov ebx, 0xffffffff
movaps xmm6, xmmword [rsp + 0x1240]
mov eax, ebx
movaps xmm7, xmmword [rsp + 0x1250]
add rsp, 0x1268
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
ucomisd xmm0, xmm7
ja 0x450af7
cmp ecx, 0xfff
jne 0x4508a5
mov r15, r14
mov byte [r13 + 0x15cb90], 1
mov r14, r13
cmp byte [r15 + 0x59], 0
je 0x450b6f
mov edx, dword [r14 + 0x14cb88]
movsd xmm1, qword [r14 + 0x154b90]
cmp edx, 1
jbe 0x450b40
sub edx, 2
lea rax, [r14 + 0x154b98]
lea rdx, [r14 + rdx*8 + 0x154ba0]
addsd xmm1, qword [rax]
add rax, 8
cmp rdx, rax
jne 0x450b33
mov rax, qword [rsp + 0x70]
pxor xmm0, xmm0
mov eax, dword [rax + 0x38]
mov byte [r14 + 0x15cb90], 1
cvtsi2sd xmm0, rax
mulsd xmm0, xmm1
mulsd xmm0, qword [r14 + 0x4e8f0]
movsd qword [r14 + 0x4e8e8], xmm0
xor ebx, ebx
cmp byte [rsp + 0xaf], 0
je 0x450abf
mov rcx, qword [rsp + 0xb0]
call fcn.0052559e
jmp 0x450abf
mov rax, qword [rsp + 0x98]
add rax, qword [r12 + 0xe0]
imul rbx, qword [rsp + 0x12c8]
add qword [rax], rbx
jmp 0x4508cb
mov rdi, qword [rsp + 0x88]
test byte [rdi + 0x18], 1
je 0x450da2
cmp eax, 1
je 0x4513f0
cmp eax, 6
je 0x450bdb
cmp eax, 7
jne 0x4507d3
mov rcx, qword [rsp + 0x12b0]
mov eax, ebp
mov esi, ebx
mov qword [r13 + 0x15e2d8], rax
mov r9, rsi
mov r8d, 0x65
mov rdx, r13
call fcn.0044dc20
cmp eax, 0xffffffff
je 0x450aba
cmp byte [r13 + 0x15fd00], 0
jne 0x451321
cmp byte [r13 + 0x15ff48], 0
jne 0x4512d0
cmp byte [r13 + 0x160192], 0
je 0x4507d3
mov rax, rsi
mov rdx, qword [r13 + 0x1601e0]
mov rcx, qword [rsp + 0x12b0]
shl rax, 6
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
add rax, rsi
mov dword [rsp + 0x38], 0
mov qword [rsp + 0x28], 0
shl rax, 2
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x30], rax
mov r9, qword [r13 + 0x160308]
mov r8, qword [r13 + 0x160300]
call fcn.00474420
cmp eax, 0xffffffff
jne 0x4507d3
jmp 0x450aba
mov r8d, ebp
mov rax, qword [r13 + 0x15fd18]
mov rdx, qword [r13 + 0x15fe48]
shl r8, 7
add r8, qword [r13 + 0x15fe40]
mov rcx, qword [rsp + 0x12b0]
mov r9d, ebx
shl r9, 7
mov qword [rsp + 0x20], rax
call fcn.0046e2e0
cmp eax, 0xffffffff
je 0x450aba
cmp byte [r13 + 0x15ff48], 0
je 0x4507c5
mov r8d, ebp
mov rax, qword [r13 + 0x15ff60]
mov rdx, qword [r13 + 0x160090]
shl r8, 7
add r8, qword [r13 + 0x160088]
mov rcx, qword [rsp + 0x12b0]
mov r9d, ebx
shl r9, 7
mov qword [rsp + 0x20], rax
call fcn.00470c10
cmp eax, 0xffffffff
je 0x450aba
cmp byte [r13 + 0x160192], 0
je 0x4507d3
mov eax, ebx
mov rdx, qword [r13 + 0x1601e0]
mov rcx, qword [rsp + 0x12b0]
shl rax, 7
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x30], rax
mov eax, ebp
mov dword [rsp + 0x38], 0
shl rax, 7
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rax
mov r9, qword [r13 + 0x1602f8]
mov r8, qword [r13 + 0x1602f0]
call fcn.00474420
cmp eax, 0xffffffff
jne 0x4507d3
jmp 0x450aba
cmp eax, 1
je 0x450e87
cmp eax, 7
je 0x450e87
cmp eax, 6
jne 0x4507d3
jmp 0x450bdb
mov eax, dword [r14 + 0x148]
cmp eax, 1
je 0x4512aa
mov rbx, qword [rsp + 0x88]
test byte [rbx + 0x18], 1
jne 0x450de9
cmp eax, 7
je 0x4512aa
mov rax, qword [rsp + 0x78]
mov edx, dword [rax]
cmp edx, 1
je 0x451203
cmp edx, 3
je 0x451239
mov rax, qword [rsp + 0x88]
cmp dword [rax + 0xc], 0xb
je 0x451269
test edx, edx
mov r15d, 1
jne 0x4508dd
mov rax, qword [rsp + 0xd8]
mov eax, dword [rax + 4]
mov dword [rsp + 0x68], eax
mov eax, dword [rsp + 0x68]
test eax, eax
jne 0x4506b1
jmp 0x4508dd
cmp qword [rsp + 0x12c8], 0
je 0x4509d8
mov rcx, qword [r12 + 0xe0]
mov r8, qword [rsp + 0x12c0]
xor edx, edx
mov r9, qword [rsp + 0x12c8]
xor eax, eax
nop dword [rax]
add rax, r8
add qword [rcx + rax*8], rbx
lea eax, [rdx + 1]
cmp rax, r9
mov rdx, rax
jb 0x450e70
jmp 0x4509d8
test ebx, ebx
mov rax, qword [r13 + 0x4e838]
je 0x4510f7
lea rsi, [rsp + 0x130]
lea rdi, [rsp + 0x120]
mov qword [rsp + 0xf0], r12
mov r12, qword [rsp + 0xc0]
xor edx, edx
mov dword [rsp + 0x110], r15d
mov qword [rsp + 0xf8], rsi
lea rsi, [rsp + 0x128]
mov dword [rsp + 0x11c], ebp
mov qword [rsp + 0x100], rdi
mov r15d, edx
mov rbp, rax
mov qword [rsp + 0x108], rsi
nop dword [rax]
mov rcx, r12
call fcn.00477480
test eax, eax
jne 0x4517dd
mov r8d, 0x1000000
mov rdx, rbp
mov rcx, r12
call fcn.00477640
mov rcx, qword [rsp + 0x12b0]
mov r8, rax
mov rdx, rbp
mov qword [rsp + 0x120], rax
call fcn.0042cc50
cmp rax, 0x100
mov qword [rsp + 0x120], rax
ja 0x4510d4
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x128], rbp
mov rdx, qword [r14 + 0x138]
mov ecx, dword [rax + 4]
call fcn.00419bf0
test eax, eax
je 0x450fc0
mov r9, qword [rsp + 0x120]
cmp r9, 0xff
ja 0x4510d4
lea rsi, [rsp + 0x140]
xor eax, eax
mov ecx, 0x20
mov r8, rbp
mov rdi, rsi
rep stosq qword [rdi], rax
mov rax, qword [rsp + 0x78]
mov rcx, qword [r14 + 0x138]
mov edx, dword [rax + 4]
mov qword [rsp + 0x20], rsi
call fcn.004182a0
test eax, eax
js 0x451a36
cdqe
mov qword [rsp + 0x128], rsi
mov qword [rsp + 0x120], rax
cmp byte [rsp + 0xaf], 0
jne 0x451191
mov rax, qword [rsp + 0x120]
mov rsi, qword [rsp + 0x128]
cmp rax, 0x100
mov edx, 0x100
mov r10, qword [r13 + 0x4e880]
cmova rax, rdx
mov edx, r15d
mov r9, rdx
mov qword [rsp + 0x120], rax
shl r9, 6
add r9, rdx
shl r9, 2
add r10, r9
cmp eax, 8
jae 0x451040
test al, 4
jne 0x451932
test eax, eax
je 0x45106b
movzx edx, byte [rsi]
test al, 2
mov byte [r10], dl
je 0x45106b
mov eax, eax
movzx edx, word [rsi + rax - 2]
mov word [r10 + rax - 2], dx
jmp 0x45106b
mov rdx, qword [rsi]
lea rdi, [r10 + 8]
and rdi, 0xfffffffffffffff8
mov qword [r10], rdx
mov edx, eax
mov rcx, qword [rsi + rdx - 8]
mov qword [r10 + rdx - 8], rcx
mov rcx, r10
sub rcx, rdi
sub rsi, rcx
add ecx, eax
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
mov rax, qword [rsp + 0x120]
mov r8d, 0x100
xor edx, edx
mov qword [rsp + 0xd0], r9
mov qword [rsp + 0xc8], r10
lea rcx, [r10 + rax]
sub r8, rax
call sub.msvcrt.dll_memset
mov rax, qword [rsp + 0x88]
mov r10, qword [rsp + 0xc8]
mov r9, qword [rsp + 0xd0]
test byte [rax + 0x20], 4
jne 0x45175a
mov rax, qword [r13 + 0x4e880]
mov rdx, qword [rsp + 0x120]
add r15d, 1
mov dword [rax + r9 + 0x100], edx
cmp ebx, r15d
ja 0x450ef0
mov ebx, r15d
mov r12, qword [rsp + 0xf0]
mov r15d, dword [rsp + 0x110]
mov ebp, dword [rsp + 0x11c]
cmp byte [r13 + 0x15fd00], 0
jne 0x451631
cmp byte [r13 + 0x15ff48], 0
jne 0x45167f
cmp byte [r13 + 0x160192], 0
je 0x4507d3
mov rdx, qword [r13 + 0x1601e0]
mov qword [rsp + 0x48], 0
mov ecx, ebx
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x38], 0
xor r9d, r9d
mov rax, qword [r13 + 0x4e880]
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x30], rax
mov rax, rcx
shl rax, 6
add rax, rcx
mov rcx, qword [rsp + 0x12b0]
shl rax, 2
mov qword [rsp + 0x28], rax
mov r8, qword [r13 + 0x160308]
call fcn.00474380
cmp eax, 0xffffffff
jne 0x4507d3
jmp 0x450aba
mov rsi, qword [rsp + 0xe0]
lea rax, [rsp + 0x138]
mov r9, qword [rsp + 0xf8]
mov r8, qword [rsp + 0x100]
mov rdx, qword [rsp + 0x108]
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x130], rsi
mov qword [rsp + 0x138], 0x1000
call fcn.005255fe
cmp rax, 0xffffffffffffffff
je 0x4510d4
mov eax, 0x1000
mov qword [rsp + 0x128], rsi
sub rax, qword [rsp + 0x138]
jmp 0x450fde
mov rax, qword [rsp + 0xb8]
mov rax, qword [rax + 0x20]
mov rcx, rax
shr rcx, 0x20
test rcx, rcx
jne 0x450aba
mov rbx, qword [rsp + 0x88]
cmp dword [rbx + 0xc], 0xb
je 0x451269
mov dword [rsp + 0x68], eax
mov r15d, edx
jmp 0x450e31
mov rax, qword [rsp + 0xe8]
mov rax, qword [rax + 0x18]
mov rcx, rax
shr rcx, 0x20
test rcx, rcx
jne 0x450aba
mov rbx, qword [rsp + 0x88]
mov r15d, 1
cmp dword [rbx + 0xc], 0xb
jne 0x451296
test edx, edx
mov r15d, dword [r13 + 0x4e0]
je 0x450e22
cmp edx, 1
je 0x451b02
cmp edx, 3
jne 0x4508dd
mov rax, qword [rsp + 0xe8]
mov rax, qword [rax + 0x18]
mov dword [rsp + 0x68], eax
jmp 0x450e31
mov r15, r14
mov r14, r13
jmp 0x450b05
mov rcx, qword [rsp + 0xc0]
call fcn.00476da0
cmp byte [r14 + 0x58], 0
je 0x450de9
jmp 0x4506a3
mov rax, qword [r13 + 0x15ff60]
mov r9, rsi
mov rdx, qword [r13 + 0x1600a0]
shl r9, 6
mov rcx, qword [rsp + 0x12b0]
add r9, rsi
mov qword [rsp + 0x20], rax
mov r8, qword [r13 + 0x160098]
shl r9, 2
call fcn.00470c10
cmp eax, 0xffffffff
je 0x450aba
cmp byte [r13 + 0x160192], 0
je 0x4507d3
jmp 0x450c32
mov rax, qword [r13 + 0x15fd18]
mov r9, rsi
mov rdx, qword [r13 + 0x15fe58]
shl r9, 6
mov rcx, qword [rsp + 0x12b0]
add r9, rsi
mov qword [rsp + 0x20], rax
mov r8, qword [r13 + 0x15fe50]
shl r9, 2
call fcn.0046e2e0
cmp eax, 0xffffffff
je 0x450aba
cmp byte [r13 + 0x15ff48], 0
je 0x450c24
jmp 0x4512d0
mov rax, qword [r13 + 0x15ff60]
mov rdx, qword [r13 + 0x1600b0]
lea r9, [rsi*4]
mov rcx, qword [rsp + 0x12b0]
mov qword [rsp + 0x20], rax
mov r8, qword [r13 + 0x1600a8]
call fcn.00470c10
cmp eax, 0xffffffff
jne 0x450a4c
jmp 0x450aba
mov rax, qword [r13 + 0x15fd18]
mov rdx, qword [r13 + 0x15fe68]
lea r9, [rsi*4]
mov rcx, qword [rsp + 0x12b0]
mov qword [rsp + 0x20], rax
mov r8, qword [r13 + 0x15fe60]
call fcn.0046e2e0
cmp eax, 0xffffffff
jne 0x450a3e
jmp 0x450aba
test ebx, ebx
mov rax, qword [r13 + 0x4e838]
je 0x4510f7
lea rsi, [rsp + 0x130]
mov qword [rsp + 0xd0], r12
mov r12, qword [rsp + 0xc0]
xor edi, edi
mov dword [rsp + 0xf8], r15d
mov dword [rsp + 0x100], ebp
mov qword [rsp + 0x108], rsi
lea rsi, [rsp + 0x120]
mov r15d, edi
mov rbp, rax
mov qword [rsp + 0x110], rsi
mov rcx, r12
call fcn.00477480
test eax, eax
jne 0x451947
mov r8d, 0x1000000
mov rdx, rbp
mov rcx, r12
call fcn.00477640
mov rcx, qword [rsp + 0x12b0]
mov r8, rax
mov rdx, rbp
mov qword [rsp + 0x120], rax
call fcn.0042cc50
cmp rax, 0x100
mov qword [rsp + 0x120], rax
ja 0x451600
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x128], rbp
mov rdx, qword [r14 + 0x138]
mov ecx, dword [rax + 4]
call fcn.00419bf0
test eax, eax
je 0x451516
mov r9, qword [rsp + 0x120]
cmp r9, 0xff
ja 0x451600
lea rsi, [rsp + 0x140]
xor eax, eax
mov ecx, 0x20
mov r8, rbp
mov rdi, rsi
rep stosq qword [rdi], rax
mov rax, qword [rsp + 0x78]
mov rcx, qword [r14 + 0x138]
mov edx, dword [rax + 4]
mov qword [rsp + 0x20], rsi
call fcn.004182a0
test eax, eax
js 0x451a95
cdqe
mov qword [rsp + 0x128], rsi
mov qword [rsp + 0x120], rax
cmp byte [rsp + 0xaf], 0
jne 0x4516c4
mov rax, qword [rsp + 0x120]
mov rcx, qword [rsp + 0x128]
cmp rax, 0x100
mov edx, 0x100
mov r8d, r15d
cmova rax, rdx
mov rdx, r8
mov r9, qword [r13 + 0x4e880]
shl rdx, 6
mov qword [rsp + 0x120], rax
add rdx, r8
lea rsi, [rdx*4]
add r9, rsi
cmp eax, 8
mov qword [rsp + 0xf0], rsi
jae 0x45177f
test al, 4
jne 0x451a80
test eax, eax
jne 0x4518f8
mov rax, qword [rsp + 0x120]
mov r8d, 0x100
xor edx, edx
mov qword [rsp + 0xc8], r9
lea rcx, [r9 + rax]
sub r8, rax
call sub.msvcrt.dll_memset
mov rax, qword [rsp + 0x88]
mov r9, qword [rsp + 0xc8]
test byte [rax + 0x20], 4
jne 0x4518db
mov rsi, qword [rsp + 0xb8]
mov rax, qword [rsp + 0x120]
cmp dword [rsi + 0x18], 0x2711
je 0x451876
mov rdx, qword [r13 + 0x4e880]
mov rdi, qword [rsp + 0xf0]
add r15d, 1
mov dword [rdx + rdi + 0x100], eax
cmp r15d, ebx
jb 0x451446
cmp byte [r13 + 0x15fd00], 0
mov ebx, r15d
mov r12, qword [rsp + 0xd0]
mov r15d, dword [rsp + 0xf8]
mov ebp, dword [rsp + 0x100]
je 0x451105
mov eax, ebx
mov rdx, qword [r13 + 0x15fe58]
mov rcx, qword [rsp + 0x12b0]
mov r9, rax
shl r9, 6
add r9, rax
mov rax, qword [r13 + 0x15fd18]
shl r9, 2
mov qword [rsp + 0x20], rax
mov r8, qword [r13 + 0x4e880]
call fcn.0046e380
cmp eax, 0xffffffff
je 0x450aba
cmp byte [r13 + 0x15ff48], 0
je 0x451113
mov eax, ebx
mov rdx, qword [r13 + 0x1600a0]
mov rcx, qword [rsp + 0x12b0]
mov r9, rax
shl r9, 6
add r9, rax
mov rax, qword [r13 + 0x15ff60]
shl r9, 2
mov qword [rsp + 0x20], rax
mov r8, qword [r13 + 0x4e880]
call fcn.00470cb0
cmp eax, 0xffffffff
jne 0x451113
jmp 0x450aba
mov rsi, qword [rsp + 0xe0]
lea rax, [rsp + 0x138]
mov r9, qword [rsp + 0x108]
mov r8, qword [rsp + 0x110]
mov rcx, qword [rsp + 0xb0]
lea rdx, [rsp + 0x128]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x138], 0x1000
mov qword [rsp + 0x130], rsi
call fcn.005255fe
cmp rax, 0xffffffffffffffff
je 0x451600
mov eax, 0x1000
mov qword [rsp + 0x128], rsi
sub rax, qword [rsp + 0x138]
mov rcx, rsi
jmp 0x451534
mov dword [rsp + 0x118], 1
jmp 0x4505fc
lea rcx, [r14 + 0x15cb98]
call sub.KERNEL32.dll_QueryPerformanceCounter
jmp 0x4505d7
mov rdx, qword [rsp + 0x120]
mov rcx, r10
mov qword [rsp + 0xc8], r9
call fcn.00468290
mov r9, qword [rsp + 0xc8]
jmp 0x4510b9
mov rdx, qword [rcx]
lea rdi, [r9 + 8]
mov rsi, rcx
and rdi, 0xfffffffffffffff8
mov qword [r9], rdx
mov edx, eax
mov r8, qword [rcx + rdx - 8]
mov qword [r9 + rdx - 8], r8
mov rdx, r9
sub rdx, rdi
lea ecx, [rax + rdx]
sub rsi, rdx
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
jmp 0x45158b
mov rdx, rsi
mov rcx, rbx
call fcn.00525522
cmp rax, 0xffffffffffffffff
mov qword [rsp + 0xb0], rax
je 0x450aba
mov byte [rsp + 0xaf], 1
jmp 0x450579
mov eax, r15d
mov esi, r15d
mov r12, qword [rsp + 0xf0]
cmp ebx, eax
mov r15d, dword [rsp + 0x110]
mov ebp, dword [rsp + 0x11c]
jbe 0x45186f
mov edx, eax
lea eax, [rbx - 1]
mov r8, rdx
sub eax, edx
shl r8, 6
lea rax, [rdx + rax + 1]
add r8, rdx
shl r8, 2
mov r9, rax
shl r9, 6
add r9, rax
xor eax, eax
shl r9, 2
nop dword [rax + rax]
mov rdx, qword [r13 + 0x4e880]
add rdx, r8
add r8, 0x104
lea rdi, [rdx + 8]
mov qword [rdx], 0
mov qword [rdx + 0xfc], 0
and rdi, 0xfffffffffffffff8
sub rdx, rdi
lea ecx, [rdx + 0x104]
shr ecx, 3
cmp r9, r8
rep stosq qword [rdi], rax
jne 0x451830
mov ebx, esi
jmp 0x4510f7
mov rdi, qword [rsp + 0x88]
mov rdx, qword [rdi + 0x20]
test dl, 0x40
je 0x451898
mov byte [r9 + rax], pe_nt_image_headers64
mov rdx, qword [rdi + 0x20]
mov rax, qword [rsp + 0x120]
movabs rdi, 0x80000000000
test rdx, rdi
je 0x4518c0
mov byte [r9 + rax], 6
mov rax, qword [rsp + 0x88]
mov rdx, qword [rax + 0x20]
mov rax, qword [rsp + 0x120]
and edx, 0x10
je 0x4515e6
mov byte [r9 + rax], 1
mov rax, qword [rsp + 0x120]
jmp 0x4515e6
mov rdx, qword [rsp + 0x120]
mov rcx, r9
call fcn.00468290
mov r9, qword [rsp + 0xc8]
jmp 0x4515c9
movzx edx, byte [rcx]
test al, 2
mov byte [r9], dl
je 0x45158b
mov eax, eax
movzx edx, word [rcx + rax - 2]
mov word [r9 + rax - 2], dx
jmp 0x45158b
mov eax, dword [r14 + 0x15e7d4]
add eax, dword [r14 + 0x15e7d0]
mov dword [rsp + 0xa8], eax
jmp 0x450599
mov edx, dword [rsi]
mov eax, eax
mov dword [r10], edx
mov edx, dword [rsi + rax - 4]
mov dword [r10 + rax - 4], edx
jmp 0x45106b
mov eax, r15d
mov esi, r15d
mov r12, qword [rsp + 0xd0]
cmp ebx, eax
mov r15d, dword [rsp + 0xf8]
mov ebp, dword [rsp + 0x100]
jbe 0x45186f
mov edx, eax
lea eax, [rbx - 1]
mov r8, rdx
sub eax, esi
shl r8, 6
lea rax, [rdx + rax + 1]
add r8, rdx
shl r8, 2
mov r9, rax
shl r9, 6
add r9, rax
xor eax, eax
shl r9, 2
mov rdx, qword [r13 + 0x4e880]
add rdx, r8
add r8, 0x104
lea rdi, [rdx + 8]
mov qword [rdx], 0
mov qword [rdx + 0xfc], 0
and rdi, 0xfffffffffffffff8
sub rdx, rdi
lea ecx, [rdx + 0x104]
shr ecx, 3
cmp r9, r8
rep stosq qword [rdi], rax
jne 0x451996
mov ebx, esi
jmp 0x4510f7
mov r15, r14
mov ecx, 0xffe
mov r14, r13
lea rax, [r14 + rcx*8]
mov rdx, qword [rax + 0x14cb90]
mov qword [r14 + 0x14cb90], rdx
movsd xmm0, qword [rax + 0x154b90]
movsd qword [r14 + 0x154b90], xmm0
cmp byte [r15 + 0x59], 0
mov dword [r14 + 0x14cb88], 0
mov byte [r14 + 0x15cb90], 1
je 0x450b6f
movsd xmm1, qword [r14 + 0x154b90]
jmp 0x450b40
cmp dword [r14 + 0x148], 9
je 0x451ac6
mov rsi, qword [rsp + 0xf0]
mov rax, qword [rsp + 0x98]
mov rdi, qword [rsp + 0x12c8]
add rax, qword [rsi + 0xe8]
add qword [rax], rdi
jmp 0x4510d4
test ecx, ecx
mov r15, r14
mov r14, r13
je 0x451a0a
sub ecx, 1
jmp 0x4519e7
mov edx, dword [rcx]
mov eax, eax
mov dword [r9], edx
mov edx, dword [rcx + rax - 4]
mov dword [r9 + rax - 4], edx
jmp 0x45158b
cmp dword [r14 + 0x148], 9
je 0x451b1e
mov rdi, qword [rsp + 0xd0]
mov rax, qword [rsp + 0x98]
mov rsi, qword [rsp + 0x12c8]
add rax, qword [rdi + 0xe8]
add qword [rax], rsi
jmp 0x451600
cmp qword [rsp + 0x12c8], 0
je 0x4510d4
mov rax, qword [rsp + 0xf0]
xor edx, edx
mov rcx, qword [rax + 0xe8]
xor eax, eax
add qword [rcx + rax*8], 1
lea eax, [rdx + 1]
cmp rax, qword [rsp + 0x12c8]
mov rdx, rax
jb 0x451ae8
jmp 0x4510d4
mov rax, qword [rsp + 0xb8]
mov edx, r15d
mov rax, qword [rax + 0x20]
jmp 0x45122d
mov r14, r13
jmp 0x450b0c
cmp qword [rsp + 0x12c8], 0
je 0x451600
mov rax, qword [rsp + 0xd0]
xor edx, edx
mov rcx, qword [rax + 0xe8]
xor eax, eax
add qword [rcx + rax*8], 1
lea eax, [rdx + 1]
cmp rax, qword [rsp + 0x12c8]
mov rdx, rax
jb 0x451b40
jmp 0x451600