Function at 0x41f938
Capabilities:
Check for time delay via gettickcount
Check for time delay via queryperformancecounter
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x388
mov qword [rsp + 0x378], 0xfffffffffffffffe
mov r15, r9
mov r12, rdx
xor r14d, r14d
mov qword [rsp + 0xc8], r14
mov qword [rsp + 0xd0], r14
xor edx, edx
lea rsi, [0x0045bf00]
mov rcx, rsi
call qword [0x0045bf08]
mov qword [rsp + 0xd0], r14
mov qword [rsp + 0xc8], r14
mov edx, 0x500
mov rcx, rsi
call qword [0x0045bf00]
mov rbx, rax
cmp rax, r14
jne 0x41f9c8
mov rdx, rax
mov rcx, rsi
call qword [0x0045bf08]
jmp 0x41fad8
mov rax, r14
mov edi, 1
mov r10d, 0x100
mov byte [rax + rbx], al
add rax, rdi
cmp rax, r10
jb 0x41f9d6
mov r8d, 0xffffffff
mov r9, r14
lea r11, [0x00471ce0]
mov cl, byte [r9 + rbx]
xor cl, r8b
movzx edx, cl
mov eax, r8d
shr eax, 8
mov r8d, dword [r11 + rdx*4]
xor r8d, eax
add r9, rdi
cmp r9, r10
jb 0x41f9f1
not r8d
cmp r8d, 0x29058c73
je 0x41fa2d
mov rdx, rbx
mov rcx, rsi
call qword [0x0045bf08]
jmp 0x41fad8
lea rcx, [rbx + 0x100]
mov edx, 0x400
call fcn.00419db4
mov r13, r14
mov rbp, rbx
mov esi, r14d
mov edi, 0xffffffff
mov r9, r14
mov edx, esi
cmp rdx, r14
jbe 0x41fa89
mov r10d, 1
lea r15, [0x00471ce0]
mov cl, byte [r9 + rbp]
xor cl, dil
movzx r8d, cl
mov eax, edi
shr eax, 8
mov edi, dword [r15 + r8*4]
xor edi, eax
add r9, r10
cmp r9, rdx
jb 0x41fa63
mov r15, qword [rsp + 0x3e8]
mov rcx, rbp
call fcn.00451510
not edi
cmp edi, eax
jne 0x41fab4
mov edi, 1
add esi, edi
cmp esi, 0x20
jb 0x41fa47
add r13, rdi
add rbp, rdi
cmp r13, 0x4e0
jb 0x41fa44
jmp 0x41fac6
mov rdx, rbx
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
jmp 0x41fad8
mov rdx, rbx
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
jmp 0x41fae2
mov eax, 0x80004005
jmp 0x4225a8
movabs rax, 0x100000000
mov qword [rsp + 0x1c8], rax
mov qword [rsp + 0x2e0], rdi
mov qword [rsp + 0x2e8], rdi
lea rcx, [rsp + 0x2e0]
call fcn.0040ba38
xor ebx, ebx
cmp eax, ebx
je 0x41fb40
mov rcx, qword [rsp + 0x2e0]
call fcn.0040ba18
cmp eax, ebx
je 0x41fb40
mov rcx, qword [rsp + 0x2e0]
call fcn.0040ba18
mov esi, eax
mov dword [rsp + 0xb0], eax
jmp 0x41fb4e
call fcn.0040ba60
mov esi, eax
mov dword [rsp + 0xb0], eax
lea rcx, [rsp + 0x1c8]
call fcn.0040bab4
mov byte [rsp + 0x95], al
mov dword [rsp + 0x98], esi
mov byte [rsp + 0x90], bl
mov dword [rsp + 0x108], 0xfa0
mov dword [rsp + 0xe8], 0x16
mov byte [rsp + 0x91], bl
mov rbp, rbx
mov qword [rsp + 0x110], rbx
mov byte [rsp + 0x94], bl
movabs rax, 0x400000000
mov qword [rsp + 0x118], rax
mov dword [rsp + 0x160], edi
mov dword [rsp + 0x1f8], ebx
mov dword [rsp + 0x1fc], ebx
mov dword [rsp + 0x200], edi
mov qword [rsp + 0x190], rbx
mov dword [rsp + 0x198], ebx
mov dword [rsp + 0x19c], ebx
lea rcx, [rsp + 0x1a0]
call fcn.00402c2c
nop
lea rcx, [rsp + 0x1b0]
call fcn.004032ec
nop
mov r13, rbx
mov qword [rsp + 0x120], rbx
mov qword [rsp + 0x128], rbx
cmp r12, rbx
je 0x41fce7
xor r14d, r14d
cmp dword [r15 + 8], r14d
jbe 0x41fcd5
mov rdi, r14
lea r13d, [r14 + 1]
mov rax, qword [r15]
mov rsi, qword [rdi + rax]
mov rax, qword [r12]
lea rdx, [0x00453ef8]
mov rcx, r12
call qword [rax]
mov rdx, rsi
lea rcx, [rsp + 0xc8]
call fcn.00418bf8
nop
mov r8, qword [r12]
mov rdx, qword [rax]
mov rcx, r12
call qword [r8]
nop
mov rcx, qword [rsp + 0xc8]
call sub.msvcrt.dll_free
cmp dword [rsi + 0x18], r14d
je 0x41fcb5
mov rax, qword [r12]
lea rdx, [0x00456154]
mov rcx, r12
call qword [rax]
lea rdx, [rsi + 0x10]
lea rcx, [rsp + 0x180]
call fcn.00418bf8
nop
mov r8, qword [r12]
mov rdx, qword [rax]
mov rcx, r12
call qword [r8]
nop
mov rcx, qword [rsp + 0x180]
call sub.msvcrt.dll_free
add ebx, r13d
add rdi, 8
cmp ebx, dword [r15 + 8]
jb 0x41fc2f
mov r13, qword [rsp + 0x120]
mov esi, dword [rsp + 0xb0]
xor ebx, ebx
cmp dword [r15 + 8], ebx
je 0x41fce7
mov rax, qword [r12]
mov rcx, r12
call qword [rax + VariantCopy]
mov edi, ebx
mov r14d, 0x40
cmp dword [r15 + 8], ebx
jbe 0x420808
mov rbp, rbx
jmp 0x41fd05
mov esi, dword [rsp + 0xb0]
mov rax, qword [r15]
mov rbx, qword [rax + rbp]
mov rdx, rbx
lea rcx, [rsp + 0xa0]
call fcn.004033f8
nop
mov rcx, qword [rsp + 0xa0]
call fcn.0040276c
lea rdx, str.file
mov rcx, qword [rsp + 0xa0]
call fcn.0040287c
xor ecx, ecx
cmp al, cl
je 0x41fe89
xor esi, esi
cmp dword [rbx + 0x18], esi
je 0x420488
mov qword [rsp + 0x1d0], 0xffffffffffffffff
mov byte [rsp + 0x1d8], sil
mov rdx, qword [rbx + 0x10]
lea rcx, [rsp + 0x1d0]
call fcn.004092bc
cmp al, sil
je 0x4204b1
lea rdx, [rsp + 0x2d8]
lea rcx, [rsp + 0x1d0]
call fcn.00408aa4
cmp al, sil
je 0x4204ea
cmp r12, rsi
je 0x41fdd2
mov rax, qword [r12]
lea rdx, str.file_size_
mov rcx, r12
call qword [rax]
xor r8d, r8d
mov rdx, qword [rsp + 0x2d8]
mov rcx, r12
call fcn.004195fc
mov r11, qword [r12]
mov rcx, r12
call qword [r11 + VariantCopy]
mov rbx, qword [rsp + 0x2d8]
cmp r13, rsi
je 0x41fde9
cmp rbx, qword [rsp + 0x128]
je 0x41fe35
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
mov qword [rsp + 0x128], rsi
mov qword [rsp + 0x120], rsi
mov rdx, rbx
lea rcx, [0x0045bf00]
call qword [0x0045bf00]
mov r13, rax
mov qword [rsp + 0x120], rax
cmp rax, rsi
je 0x420523
mov qword [rsp + 0x128], rbx
lea r9, [rsp + 0x338]
mov r8, rbx
mov rdx, r13
lea rcx, [rsp + 0x1d0]
call fcn.00408be4
cmp al, sil
je 0x42055a
cmp qword [rsp + 0x338], rbx
jne 0x420593
lea rcx, [rsp + 0x1d0]
call fcn.00408a78
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
xor ebx, ebx
jmp 0x42046b
mov word [rsp + 0xf0], cx
mov word [rsp + 0xf2], cx
mov qword [rsp + 0xf8], rcx
cmp dword [rbx + 0x18], ecx
je 0x41ff09
lea rdx, [rsp + 0x140]
mov rcx, qword [rbx + 0x10]
call fcn.00404034
mov rcx, qword [rsp + 0x140]
xor edx, edx
cmp word [rcx], dx
jne 0x41fef8
cmp dword [rbx + 0x18], edx
je 0x41fef8
mov ecx, 0xffffffff
cmp rax, rcx
ja 0x41fee6
mov edx, eax
lea rcx, [rsp + 0xf0]
call fcn.0040b450
jmp 0x41ff09
mov rdx, rax
lea rcx, [rsp + 0xf0]
call fcn.0040b47c
jmp 0x41ff09
lea rdx, [rbx + 0x10]
lea rcx, [rsp + 0xf0]
call fcn.0040b368
lea rdx, str.time
mov rcx, qword [rsp + 0xa0]
call fcn.0040287c
xor ebx, ebx
cmp al, bl
je 0x41ff9c
lea rcx, [rsp + 0xc8]
call fcn.004032ec
nop
lea r8, [rsp + 0x108]
lea rdx, [rsp + 0xf0]
mov rcx, rax
call fcn.0040e674
mov esi, eax
mov rcx, qword [rsp + 0xc8]
call sub.msvcrt.dll_free
cmp esi, ebx
jne 0x4205ca
mov byte [rsp + 0x90], 1
mov eax, dword [rsp + 0x108]
imul eax, eax, 0x3e8
mov dword [rsp + 0x108], eax
lea rcx, [rsp + 0xf0]
call fcn.0040b1ec
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
jmp 0x42046b
lea rdx, str.timems
mov rcx, qword [rsp + 0xa0]
call fcn.0040287c
cmp al, bl
je 0x420019
lea rcx, [rsp + 0xb8]
call fcn.004032ec
nop
lea r8, [rsp + 0x108]
lea rdx, [rsp + 0xf0]
mov rcx, rax
call fcn.0040e674
mov esi, eax
mov rcx, qword [rsp + 0xb8]
call sub.msvcrt.dll_free
cmp esi, ebx
jne 0x4205fc
mov byte [rsp + 0x90], 1
lea rcx, [rsp + 0xf0]
call fcn.0040b1ec
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
jmp 0x42046b
lea rdx, [0x00456128]
mov rcx, qword [rsp + 0xa0]
call fcn.0040287c
cmp al, bl
je 0x4200ae
lea rcx, [rsp + 0x168]
call fcn.004032ec
nop
lea r8, [rsp + 0x1c0]
lea rdx, [rsp + 0xf0]
mov rcx, rax
call fcn.0040e674
mov esi, eax
mov rcx, qword [rsp + 0x168]
call sub.msvcrt.dll_free
cmp esi, ebx
jne 0x42062e
mov ecx, dword [rsp + 0x1c0]
cmp ecx, r14d
jae 0x420660
mov esi, 1
shl rsi, cl
mov qword [rsp + 0x118], rsi
lea rcx, [rsp + 0xf0]
call fcn.0040b1ec
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
jmp 0x42046b
lea rdx, [0x00456124]
mov rcx, qword [rsp + 0xa0]
call fcn.0040287c
cmp al, bl
je 0x42012b
lea rcx, [rsp + 0x2c8]
call fcn.004032ec
nop
lea r8, [rsp + 0xe8]
lea rdx, [rsp + 0xf0]
mov rcx, rax
call fcn.0040e674
mov esi, eax
mov rcx, qword [rsp + 0x2c8]
call sub.msvcrt.dll_free
cmp esi, ebx
jne 0x420697
mov byte [rsp + 0x91], 1
lea rcx, [rsp + 0xf0]
call fcn.0040b1ec
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
jmp 0x42046b
lea rdx, [0x00456120]
mov rcx, qword [rsp + 0xa0]
call fcn.0040287c
cmp al, bl
je 0x4201a0
lea rcx, [rsp + 0x218]
call fcn.004032ec
nop
lea r8, [rsp + 0x160]
lea rdx, [rsp + 0xf0]
mov rcx, rax
call fcn.0040e674
mov esi, eax
mov rcx, qword [rsp + 0x218]
call sub.msvcrt.dll_free
cmp esi, ebx
jne 0x4206c9
lea rcx, [rsp + 0xf0]
call fcn.0040b1ec
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
jmp 0x42046b
lea rdx, [0x0045611c]
mov rcx, qword [rsp + 0xa0]
call fcn.0040287c
cmp al, bl
je 0x420252
lea rcx, [rsp + 0x318]
call fcn.004032ec
nop
lea r8, [rsp + 0x164]
lea rdx, [rsp + 0xf0]
mov rcx, rax
call fcn.0040e674
mov esi, eax
mov rcx, qword [rsp + 0x318]
call sub.msvcrt.dll_free
cmp esi, ebx
jne 0x4206fb
mov eax, dword [rsp + 0x164]
cmp eax, ebx
jbe 0x420232
mov ecx, dword [rsp + 0xb0]
cmp eax, ecx
jae 0x420232
mov r8d, 2
mov edx, ecx
lea rcx, [rsp + 0x1f8]
call fcn.00418f98
mov ecx, dword [rsp + 0x164]
mov dword [rsp + 0x1f8], ecx
lea rcx, [rsp + 0xf0]
call fcn.0040b1ec
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
jmp 0x42046b
lea rdx, str.freq
mov rcx, qword [rsp + 0xa0]
call fcn.0040287c
cmp al, bl
je 0x420323
mov dword [rsp + 0x148], ebx
lea rcx, [rsp + 0x1e8]
call fcn.004032ec
nop
lea r8, [rsp + 0x148]
lea rdx, [rsp + 0xf0]
mov rcx, rax
call fcn.0040e674
mov esi, eax
mov rcx, qword [rsp + 0x1e8]
call sub.msvcrt.dll_free
cmp esi, ebx
jne 0x42072d
mov eax, dword [rsp + 0x148]
cmp eax, ebx
je 0x42075f
imul rax, rax, 0xf4240
mov qword [rsp + 0x110], rax
cmp r12, rbx
je 0x420303
mov rax, qword [r12]
lea rdx, [0x0045610c]
mov rcx, r12
call qword [rax]
mov edx, dword [rsp + 0x148]
xor r8d, r8d
mov rcx, r12
call fcn.004195fc
mov r11, qword [r12]
mov rcx, r12
call qword [r11 + VariantCopy]
nop
lea rcx, [rsp + 0xf0]
call fcn.0040b1ec
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
jmp 0x42046b
lea rdx, [0x00454344]
lea rcx, [rsp + 0xa0]
call fcn.0040283c
cmp al, bl
je 0x420429
mov rdx, qword [rsp + 0xa0]
add rdx, 4
lea rcx, [rsp + 0x180]
call fcn.00403358
nop
lea rdx, [0x00453860]
mov rcx, qword [rsp + 0x180]
call fcn.0040287c
cmp al, bl
jne 0x4203f6
cmp dword [rsp + 0x188], ebx
jne 0x4203a1
cmp word [rsp + 0xf0], 8
jne 0x4203a1
lea rdx, [0x00453860]
mov rcx, qword [rsp + 0xf8]
call fcn.0040287c
cmp al, bl
jne 0x4203f6
lea r9, [rsp + 0x98]
mov r8d, esi
lea rdx, [rsp + 0xf0]
lea rcx, [rsp + 0x180]
call fcn.0040e6c4
mov esi, eax
cmp eax, ebx
jne 0x420796
mov rcx, qword [rsp + 0x180]
call sub.msvcrt.dll_free
nop
lea rcx, [rsp + 0xf0]
call fcn.0040b1ec
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
jmp 0x42046b
mov byte [rsp + 0x94], 1
mov rcx, qword [rsp + 0x180]
call sub.msvcrt.dll_free
nop
lea rcx, [rsp + 0xf0]
call fcn.0040b1ec
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
jmp 0x42046b
lea r8, [rsp + 0xf0]
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0x190]
call fcn.0040f658
mov esi, eax
cmp eax, ebx
jne 0x4207d6
lea rcx, [rsp + 0xf0]
call fcn.0040b1ec
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
inc edi
add rbp, 8
cmp edi, dword [r15 + 8]
jb 0x41fcfe
mov rbp, qword [rsp + 0x110]
jmp 0x420808
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
mov esi, 0x80070057
jmp 0x422544
call fcn.00408a4c
mov esi, eax
lea rcx, [rsp + 0x1d0]
call fcn.00408a78
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
jmp 0x422544
call fcn.00408a4c
mov esi, eax
lea rcx, [rsp + 0x1d0]
call fcn.00408a78
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
jmp 0x422544
lea rcx, [rsp + 0x1d0]
call fcn.00408a78
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
mov esi, 0x8007000e
jmp 0x422544
call fcn.00408a4c
mov esi, eax
lea rcx, [rsp + 0x1d0]
call fcn.00408a78
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
jmp 0x422544
lea rcx, [rsp + 0x1d0]
call fcn.00408a78
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
mov esi, 0x80004005
jmp 0x422544
lea rcx, [rsp + 0xf0]
call fcn.0040b1ec
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
jmp 0x422544
lea rcx, [rsp + 0xf0]
call fcn.0040b1ec
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
jmp 0x422544
lea rcx, [rsp + 0xf0]
call fcn.0040b1ec
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
jmp 0x422544
lea rcx, [rsp + 0xf0]
call fcn.0040b1ec
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
mov esi, 0x80070057
jmp 0x422544
lea rcx, [rsp + 0xf0]
call fcn.0040b1ec
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
jmp 0x422544
lea rcx, [rsp + 0xf0]
call fcn.0040b1ec
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
jmp 0x422544
lea rcx, [rsp + 0xf0]
call fcn.0040b1ec
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
jmp 0x422544
lea rcx, [rsp + 0xf0]
call fcn.0040b1ec
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
jmp 0x422544
lea rcx, [rsp + 0xf0]
call fcn.0040b1ec
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
mov esi, 0x80070057
jmp 0x422544
mov rcx, qword [rsp + 0x180]
call sub.msvcrt.dll_free
nop
lea rcx, [rsp + 0xf0]
call fcn.0040b1ec
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
jmp 0x422544
lea rcx, [rsp + 0xf0]
call fcn.0040b1ec
nop
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
jmp 0x422544
cmp r12, rbx
je 0x420b19
lea rcx, [rsp + 0xc8]
call fcn.00402c2c
nop
lea rcx, [rsp + 0xc8]
call fcn.0040c36c
mov r11, qword [r12]
mov rdx, qword [rsp + 0xc8]
mov rcx, r12
call qword [r11]
mov r11, qword [r12]
mov rcx, r12
call qword [r11 + VariantCopy]
nop
mov rcx, qword [rsp + 0xc8]
call sub.msvcrt.dll_free
mov r11, qword [r12]
lea rdx, str.CPU_Freq:
mov rcx, r12
call qword [r11]
cmp rbp, rbx
je 0x420892
mov r13d, 1
mov rax, r14
imul rax, rax, 0xf4240
cmp rbp, rax
jae 0x42088a
shr r14, 1
cmp r14, r13
ja 0x420873
mov r13, qword [rsp + 0x120]
mov r15d, ebx
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x10]
mov esi, eax
cmp eax, ebx
jne 0x420a78
lea rcx, [rsp + 0x140]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
cmp eax, ebx
je 0x4208c5
mov rbx, qword [rsp + 0x140]
jmp 0x4208cd
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, eax
mov rdx, r14
imul rdx, rdx, 0xf4240
shr rdx, 7
mov r8d, dword [0x00471624]
mov ecx, ebx
call fcn.004193a4
cmp eax, 0xf1541213
jne 0x420900
mov rax, qword [r12]
lea rdx, [0x0045437a]
mov rcx, r12
call qword [rax]
lea rcx, [rsp + 0x1e8]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x42091c
mov rbp, qword [rsp + 0x1e8]
jmp 0x420924
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebp, eax
sub rbp, rbx
mov rsi, rbp
mov ecx, 1
cmove rsi, rcx
movabs rax, 0x2000000000000000
cmp rsi, rax
cmova rsi, rcx
lea rcx, [rsp + 0x178]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov edi, 0x3e8
xor ecx, ecx
cmp eax, ecx
cmovne rdi, qword [rsp + 0x178]
mov rax, rdi
imul rax, r14
xor edx, edx
div rsi
mov rbx, rax
cmp rbp, rcx
jne 0x42098b
mov r8, qword [r12]
lea rdx, [0x004560fc]
mov rcx, r12
call qword [r8]
jmp 0x42099c
mov r8d, 5
mov rdx, rax
mov rcx, r12
call fcn.004195fc
mov ebp, 1
cmp r15d, ebp
jl 0x420a6e
cmp r14, 0x800
setae cl
shl rdi, 4
cmp rsi, rdi
jb 0x4209dd
mov rax, qword [r12]
lea rdx, str.__Cmplx_
mov rcx, r12
call qword [rax]
mov al, bpl
mov byte [rsp + 0x90], bpl
mov cl, bpl
jmp 0x4209e4
mov al, byte [rsp + 0x90]
xor edx, edx
cmp al, dl
je 0x420a63
imul rbx, rbx, 0xf4240
movabs rax, 0x400000000
mov qword [rsp + 0x118], rax
mov eax, 0x3d0900
cmp rbx, rax
cmovb rbx, rax
movabs rax, 0x4a817c800
cmp rbx, rax
jae 0x420a63
mov eax, dword [rsp + 0x108]
cmp eax, edx
je 0x420a54
mov r8, rax
imul r8, rbx
movabs rax, 0x624dd2f1a9fbe77
mul r8
sub r8, rdx
shr r8, 1
add r8, rdx
shr r8, 9
mov qword [rsp + 0x118], r8
jmp 0x420a63
mov rax, rbx
shr rax, 2
mov qword [rsp + 0x118], rax
xor ebx, ebx
cmp cl, bl
jne 0x420a8e
add r14, r14
jmp 0x420a70
xor ebx, ebx
add r15d, ebp
jmp 0x420895
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
jmp 0x422544
mov rax, qword [r12]
mov rcx, r12
call qword [rax + VariantCopy]
mov r11, qword [r12]
mov rcx, r12
call qword [r11 + VariantCopy]
mov r11d, dword [rsp + 0xb0]
mov dword [rsp + 0x28], r11d
lea rax, str.CPU_hardware_threads:
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x1c8]
mov r8b, byte [rsp + 0x95]
lea rdx, str.size:
mov rcx, r12
call fcn.00419a80
lea rdx, [rsp + 0x2e0]
lea rcx, [rsp + 0xc8]
call fcn.0041991c
nop
mov r8, qword [r12]
mov rdx, qword [rax]
mov rcx, r12
call qword [r8]
nop
mov rcx, qword [rsp + 0xc8]
call sub.msvcrt.dll_free
mov r11, qword [r12]
mov rcx, r12
call qword [r11 + VariantCopy]
jmp 0x420b1e
mov ebp, 1
mov eax, dword [rsp + 0x98]
dec eax
cmp eax, 0xfff
ja 0x422585
mov r15d, ebx
mov dword [rsp + 0xe4], r15d
mov edx, ebp
lea rcx, [rsp + 0x190]
call fcn.0040ec14
cmp eax, ebx
jl 0x420b7e
mov ecx, eax
mov rax, qword [rsp + 0x190]
mov rdx, qword [rax + rcx*8]
cmp word [rdx + 8], 0x13
jne 0x420b7e
mov r15d, dword [rdx + 0x10]
mov dword [rsp + 0xe4], r15d
mov dil, bpl
mov byte [rsp + 0x90], bpl
jmp 0x420b88
mov dil, bl
mov byte [rsp + 0x90], bl
cmp dword [rsp + 0x1a8], ebx
jne 0x420ba5
lea rdx, str.LZMA
lea rcx, [rsp + 0x1a0]
call fcn.00402cdc
mov rbx, qword [rsp + 0x3e0]
xor eax, eax
cmp rbx, rax
je 0x420c76
mov dword [rsp + 0xd8], eax
mov dword [rsp + 0xcc], 0x4b0
mov dword [rsp + 0xd4], 4
mov dword [rsp + 0xd0], 0xbe
mov byte [rsp + 0xc8], bpl
lea rcx, [rsp + 0x190]
call fcn.0041a520
lea ecx, [rax + 0x10000]
lea rax, [rsp + 0xc8]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x48], r12
mov dword [rsp + 0x40], 0x1e
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rcx
lea rax, [rsp + 0x190]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x1f8]
mov qword [rsp + 0x20], rax
mov r9d, dword [rsp + 0x98]
mov r8b, bpl
mov rdx, qword [rsp + 0x118]
mov rcx, qword [rsp + 0x3d0]
call fcn.0041e228
mov esi, eax
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
jmp 0x422544
lea rdx, [rsp + 0x1a0]
lea rcx, [rsp + 0x130]
call fcn.00402ca8
nop
lea rdx, [0x004560c4]
mov rcx, qword [rsp + 0x130]
call fcn.004028a0
xor ebx, ebx
cmp al, bl
je 0x420cba
lea rdx, str.crc32
lea rcx, [rsp + 0x130]
call fcn.00402cdc
lea rdx, [rsp + 0x130]
lea rcx, [rsp + 0x1a0]
call fcn.00402d40
lea r8, [rsp + 0x370]
lea rdx, [rsp + 0x130]
mov rcx, qword [rsp + 0x3d0]
call fcn.0040ca90
cmp al, bl
je 0x42162c
cmp r12, rbx
jne 0x420d1f
mov rcx, qword [rsp + 0x130]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
mov esi, ebp
jmp 0x422544
mov eax, 0x8000000
cmp dil, bl
cmove r15, rax
cmp r13, rbx
je 0x420d53
cmp dil, bl
jne 0x420d42
mov r14, qword [rsp + 0x128]
mov r15, r14
jmp 0x420d5b
mov r14, qword [rsp + 0x128]
cmp r15, r14
cmova r15, r14
jmp 0x420d5b
mov r14, qword [rsp + 0x128]
mov dword [rsp + 0xe0], 0x2710
mov rbp, rbx
mov qword [rsp + 0x2c0], rbx
mov esi, ebx
lea rdi, [0x004559f4]
mov rdx, qword [rdi + 0xc]
lea rcx, [rsp + 0xb8]
call fcn.00402c64
nop
lea rcx, [rsp + 0xc8]
call fcn.00402c2c
nop
mov dl, 0x3a
mov rcx, qword [rsp + 0xb8]
call fcn.0040271c
mov ebx, eax
test eax, eax
js 0x420de3
lea edx, [rbx + 1]
add rdx, qword [rsp + 0xb8]
lea rcx, [rsp + 0xc8]
call fcn.00402cdc
cmp ebx, dword [rsp + 0xc0]
jae 0x420de3
mov dword [rsp + 0xc0], ebx
mov rax, qword [rsp + 0xb8]
mov byte [rbx + rax], 0
mov rdx, qword [rsp + 0x130]
mov rcx, qword [rsp + 0xb8]
call fcn.004028a0
xor ecx, ecx
cmp al, cl
je 0x420e87
cmp dword [rsp + 0x1b8], ecx
sete bl
cmp bl, cl
je 0x420e4f
cmp rbp, rcx
je 0x420e4d
lea rdx, str.crc32
mov rcx, qword [rsp + 0xb8]
call fcn.004028a0
xor ecx, ecx
cmp al, cl
je 0x420e49
lea rdx, [0x004560b8]
mov rcx, qword [rsp + 0xc8]
call fcn.004028a0
xor ecx, ecx
cmp al, cl
jne 0x420e4d
mov bl, cl
jmp 0x420e4f
mov bl, 1
mov rdx, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x1b0]
call fcn.004028e4
xor edx, edx
cmp al, dl
jne 0x420e6e
cmp bl, dl
je 0x420e87
mov ecx, dword [rdi]
mov dword [rsp + 0xe0], ecx
lea rbp, [rdi + 4]
mov qword [rsp + 0x2c0], rbp
cmp al, dl
jne 0x420eba
mov rcx, qword [rsp + 0xc8]
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0xb8]
call sub.msvcrt.dll_free
mov r8d, 1
add esi, r8d
add rdi, 0x18
cmp esi, 0xb
jb 0x420d7a
jmp 0x420edb
mov rcx, qword [rsp + 0xc8]
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0xb8]
call sub.msvcrt.dll_free
mov r8d, 1
test rbp, rbp
jne 0x420f09
mov rcx, qword [rsp + 0x130]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
mov esi, 0x80004001
jmp 0x422544
xor ebp, ebp
cmp r13, rbp
je 0x420f39
lea r9, [r14 + 0x100000]
mov rdx, r15
cmp r15, r14
cmova rdx, r14
mov ecx, dword [rsp + 0x98]
cmp ecx, r8d
je 0x420f4e
mov rax, rcx
imul rax, rdx
add r9, rax
jmp 0x420f4e
mov ecx, dword [rsp + 0x98]
mov r9, rcx
imul r9, r15
add r9, 0x100000
mov dword [rsp + 0x28], ecx
lea rax, str.Benchmark_threads:
mov qword [rsp + 0x20], rax
lea rdx, str.usage:
mov rcx, r12
call fcn.00419a80
mov r11, qword [r12]
mov rcx, r12
call qword [r11 + VariantCopy]
mov rsi, rbp
mov qword [rsp + 0xb8], rbp
mov r14d, ebp
mov dword [rsp + 0xc0], ebp
mov dword [rsp + 0xc4], ebp
mov ebx, dword [rsp + 0x160]
cmp ebx, dword [rsp + 0x98]
ja 0x421011
mov edx, ebx
lea rcx, [rsp + 0xb8]
call fcn.0041a4b0
lea edi, [rbx + rbx]
mov eax, dword [rsp + 0x98]
mov edx, eax
shr edx, 1
cmp edx, ebx
jbe 0x420fdd
cmp edx, edi
jae 0x420fdd
lea rcx, [rsp + 0xb8]
call fcn.0041a4b0
mov eax, dword [rsp + 0x98]
cmp eax, ebx
jbe 0x420ffb
cmp eax, edi
jae 0x420ffb
mov edx, eax
lea rcx, [rsp + 0xb8]
call fcn.0041a4b0
mov eax, dword [rsp + 0x98]
mov ebx, edi
cmp edi, eax
jbe 0x420fa4
mov r14d, dword [rsp + 0xc0]
mov rsi, qword [rsp + 0xb8]
mov rax, qword [r12]
mov rcx, r12
call qword [rax + VariantCopy]
mov r11, qword [r12]
lea rdx, str.THRD
mov rcx, r12
call qword [r11]
cmp r14d, ebp
jbe 0x42105e
mov rbx, rsi
mov edi, r14d
mov r13d, 1
mov edx, dword [rbx]
mov r8d, 0xd
mov rcx, r12
call fcn.004195fc
add rbx, 4
sub rdi, r13
jne 0x42103d
mov r13, qword [rsp + 0x120]
mov rax, qword [r12]
mov rcx, r12
call qword [rax + VariantCopy]
mov r11, qword [r12]
lea rdx, [0x004560a8]
mov rcx, r12
call qword [r11]
cmp r14d, ebp
jbe 0x4210b7
mov ebx, r14d
mov edi, 1
mov r8d, 6
lea rdx, str.Usage
mov rcx, r12
call fcn.00419d50
mov r8d, 8
lea rdx, [0x0045609c]
mov rcx, r12
call fcn.00419d50
sub rbx, rdi
jne 0x421086
jmp 0x4210bc
mov edi, 1
mov rax, qword [r12]
mov rcx, r12
call qword [rax + VariantCopy]
mov r11, qword [r12]
lea rdx, str.Size
mov rcx, r12
call qword [r11]
cmp r14d, ebp
jbe 0x42110e
mov ebx, r14d
mov r8d, 6
lea rdx, [0x00456090]
mov rcx, r12
call fcn.00419d50
mov r8d, 8
lea rdx, str.MB_s
mov rcx, r12
call fcn.00419d50
sub rbx, rdi
jne 0x4210df
mov rax, qword [r12]
mov rcx, r12
call qword [rax + VariantCopy]
mov r11, qword [r12]
mov rcx, r12
call qword [r11 + VariantCopy]
mov ebp, r14d
mov qword [rsp + 0x218], rbp
mov ebx, r14d
shl rbx, 3
mov rcx, rbx
call fcn.004021d0
mov rdi, rax
mov qword [rsp + 0x168], rax
mov rcx, rbx
call fcn.004021d0
mov rbx, rax
mov qword [rsp + 0x2c8], rax
xor r8d, r8d
cmp r14d, r8d
jbe 0x421182
mov rcx, rdi
sub rcx, rax
mov rdx, rbp
lea r9d, [r8 + 1]
mov qword [rcx + rax], r8
mov qword [rax], r8
add rax, 8
sub rdx, r9
jne 0x421170
jmp 0x421188
mov r9d, 1
mov qword [rsp + 0x150], r8
mov dword [rsp + 0xb0], r8d
cmp dword [rsp + 0x3f0], r8d
jbe 0x4215e6
jmp 0x4211ab
xor r8d, r8d
mov ebp, 0xa
cmp byte [rsp + 0x91], r8b
cmovne ebp, dword [rsp + 0xe8]
mov dword [rsp + 0xb4], ebp
mov ecx, ebp
mov rax, r9
shl rax, cl
mov qword [rsp + 0x140], rax
lea rdx, [rsp + 0xc8]
call fcn.0040199c
xor ecx, ecx
mov rax, rcx
cmp byte [rsp + 0xc8], cl
je 0x421204
lea r10d, [rcx + 1]
add rax, r10
cmp byte [rsp + rax + 0xc8], cl
jne 0x4211f6
jmp 0x42120a
mov r10d, 1
mov byte [rsp + rax + 0xc8], 0x3a
inc rax
mov byte [rsp + rax + 0xc8], 0x20
add rax, r10
mov byte [rsp + rax + 0xc8], cl
mov r8d, 4
lea rdx, [rsp + 0xc8]
mov rcx, r12
call fcn.00419d50
mov rcx, qword [rsp + 0x128]
mov qword [rsp + 0x158], rcx
mov rax, qword [rsp + 0x140]
cmp rcx, rax
ja 0x421263
xor ecx, ecx
cmp r13, rcx
jne 0x42126d
jmp 0x421265
xor ecx, ecx
mov qword [rsp + 0x158], rax
mov dword [rsp + 0xe4], ecx
cmp r14d, ecx
jbe 0x421415
mov qword [rsp + 0x140], rbx
mov qword [rsp + 0x110], rsi
mov rax, rdi
sub rax, rbx
mov qword [rsp + 0x318], rax
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x10]
mov esi, eax
xor ecx, ecx
cmp eax, ecx
jne 0x421484
mov rax, qword [rsp + 0x110]
mov r8d, dword [rax]
mov qword [rsp + 0x1e8], rcx
mov qword [rsp + 0x178], rcx
cmp ebp, 0x11
jne 0x4212e0
cmp r13, rcx
jne 0x4212e0
mov rax, qword [rsp + 0x2c0]
jmp 0x4212e3
mov rax, rcx
mov qword [rsp + 0x80], rcx
mov byte [rsp + 0x78], cl
mov qword [rsp + 0x70], rcx
mov byte [rsp + 0x68], cl
lea rcx, [rsp + 0x1f8]
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x58], r12
lea rcx, [rsp + 0x190]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], rax
mov eax, 1
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0xe0]
mov dword [rsp + 0x38], eax
lea rax, [rsp + 0x178]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x1e8]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r13
mov r9, qword [rsp + 0x158]
mov rdx, qword [rsp + 0x118]
mov rcx, qword [rsp + 0x3d0]
call fcn.0041c650
mov esi, eax
test eax, eax
jne 0x4214c8
mov rbp, qword [rsp + 0x178]
lea rcx, [rbp + 0x1388]
movabs rax, 0x346dc5d63886594b
mul rcx
shr rdx, 0xb
lea r8d, [rsi + 5]
mov rcx, r12
call fcn.004195fc
movabs rax, 0x431bde82d7b634db
mov rsi, qword [rsp + 0x1e8]
mul rsi
shr rdx, 0x12
mov r8d, 7
mov rcx, r12
call fcn.004195fc
mov rax, qword [rsp + 0x140]
mov rcx, qword [rsp + 0x318]
add qword [rax + rcx], rsi
add qword [rax], rbp
mov ecx, dword [rsp + 0xe4]
inc ecx
mov dword [rsp + 0xe4], ecx
add qword [rsp + 0x110], 4
add rax, 8
mov qword [rsp + 0x140], rax
cmp ecx, r14d
mov ebp, dword [rsp + 0xb4]
jb 0x42129b
mov rax, qword [r12]
mov rcx, r12
call qword [rax + VariantCopy]
mov rax, qword [rsp + 0x150]
mov r9d, 1
add rax, r9
mov qword [rsp + 0x150], rax
cmp qword [rsp + 0x158], r15
jae 0x421459
add ebp, r9d
mov dword [rsp + 0xb4], ebp
mov rsi, qword [rsp + 0xb8]
jmp 0x4211c7
mov ecx, dword [rsp + 0xb0]
add ecx, r9d
mov dword [rsp + 0xb0], ecx
cmp ecx, dword [rsp + 0x3f0]
mov rsi, qword [rsp + 0xb8]
jb 0x4211a8
jmp 0x42150c
mov rcx, rbx
call sub.msvcrt.dll_free
nop
mov rcx, rdi
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0xb8]
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0x130]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
jmp 0x422544
mov rcx, rbx
call sub.msvcrt.dll_free
nop
mov rcx, rdi
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0xb8]
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0x130]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
jmp 0x422544
xor esi, esi
cmp rax, rsi
je 0x4215e6
mov rax, qword [r12]
mov rcx, r12
call qword [rax + VariantCopy]
mov r11, qword [r12]
lea rdx, str.Avg:
mov rcx, r12
call qword [r11]
cmp r14d, esi
jbe 0x4215db
mov rbp, rdi
mov rsi, rbx
sub rsi, rdi
mov r14, qword [rsp + 0x150]
mov r15, qword [rsp + 0x218]
movabs rdi, 0x346dc5d63886594b
movabs rbx, 0x431bde82d7b634db
mov r13d, 1
xor edx, edx
mov rax, qword [rsi + rbp]
div r14
lea rcx, [rax + 0x1388]
mov rax, rdi
mul rcx
shr rdx, 0xb
mov r8d, 5
mov rcx, r12
call fcn.004195fc
xor edx, edx
mov rax, qword [rbp]
div r14
mov rcx, rax
mov rax, rbx
mul rcx
shr rdx, 0x12
mov r8d, 7
mov rcx, r12
call fcn.004195fc
add rbp, 8
sub r15, r13
jne 0x42156e
mov rbx, qword [rsp + 0x2c8]
mov rdi, qword [rsp + 0x168]
mov r13, qword [rsp + 0x120]
mov rax, qword [r12]
mov rcx, r12
call qword [rax + VariantCopy]
nop
mov rcx, rbx
call sub.msvcrt.dll_free
nop
mov rcx, rdi
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0xb8]
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0x130]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
xor esi, esi
jmp 0x422544
lea rdx, [0x00453860]
mov rcx, qword [rsp + 0x1a0]
call fcn.004028a0
mov r14b, al
mov byte [rsp + 0x91], al
mov byte [rsp + 0x92], bl
lea rdx, str.hash
mov rcx, qword [rsp + 0x1a0]
call fcn.004028a0
cmp al, bl
je 0x42167c
mov byte [rsp + 0x92], bpl
mov r14b, bpl
mov byte [rsp + 0x91], bpl
mov eax, ebx
mov dword [rsp + 0x150], ebx
lea rsi, str.Benchmark_threads:
mov edx, 1
lea r8d, [rdx + 0x11]
mov ebp, dword [rsp + 0x98]
mov dword [rsp + 0xb4], ebp
cmp byte [rsp + 0x94], bl
jne 0x4216b6
cmp eax, ebx
jne 0x422555
jmp 0x4216f9
mov ebp, edx
mov dword [rsp + 0xb4], edx
cmp eax, ebx
je 0x4216f9
mov ecx, dword [rsp + 0xb0]
cmp ecx, 2
jb 0x422555
mov ebp, ecx
mov dword [rsp + 0xb4], ecx
cmp eax, edx
jne 0x4216f0
cmp ecx, 4
jb 0x4216f9
shr ebp, 1
mov dword [rsp + 0xb4], ebp
jmp 0x4216f9
cmp ecx, 4
jb 0x422555
lea rcx, [0x00455da0]
mov qword [rsp + 0x230], rcx
mov byte [rsp + 0x238], bl
mov dword [rsp + 0x248], ebx
mov byte [rsp + 0x29c], bl
mov dword [rsp + 0x2a0], ebx
mov byte [rsp + 0x2a4], bl
mov qword [rsp + 0x2a8], rbx
mov dword [rsp + 0x2b0], edx
mov dword [rsp + 0x2b4], edx
mov qword [rsp + 0x250], rbx
mov qword [rsp + 0x258], rbx
mov qword [rsp + 0x260], rbx
mov qword [rsp + 0x268], rbx
mov qword [rsp + 0x270], rbx
mov qword [rsp + 0x278], rbx
mov qword [rsp + 0x280], rbx
mov qword [rsp + 0x288], rbx
mov qword [rsp + 0x290], r12
cmp eax, ebx
jbe 0x4217a8
mov rax, qword [r12]
mov rcx, r12
call qword [rax + VariantCopy]
mov r11, qword [r12]
mov rcx, r12
call qword [r11 + VariantCopy]
mov r8d, 0x12
cmp dil, bl
jne 0x42185b
mov al, r14b
neg al
sbb r11d, r11d
add r11d, 0x19
mov ebx, r11d
xor edi, edi
cmp byte [rsp + 0x95], dil
je 0x421809
cmp r11d, r8d
jbe 0x421809
mov esi, 0xffffffff
lea r13d, [rdi + 1]
mov ecx, ebx
mov edx, r13d
shl edx, cl
mov r8b, r14b
mov ecx, ebp
call fcn.00419170
add rax, 0x800000
cmp rax, qword [rsp + 0x1c8]
jbe 0x421802
add ebx, esi
cmp ebx, 0x12
ja 0x4217da
lea rsi, str.Benchmark_threads:
mov ecx, ebx
mov r15d, 1
shl r15d, cl
mov dword [rsp + 0xe4], r15d
cmp r14b, dil
je 0x421859
cmp ebx, r11d
je 0x421855
mov rax, qword [r12]
lea rdx, str.Dictionary_reduced_to:
mov rcx, r12
call qword [rax]
mov edx, ebx
mov r8d, 1
mov rcx, r12
call fcn.004195fc
mov r11, qword [r12]
mov rcx, r12
call qword [r11 + VariantCopy]
xor ebx, ebx
jmp 0x42185b
xor ebx, ebx
jmp 0x42185b
xor ebx, ebx
mov r8b, r14b
mov edx, r15d
mov ecx, ebp
call fcn.00419170
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x20], rsi
mov r9, rax
mov esi, 1
mov r8b, sil
lea rdx, str.usage:
mov rcx, r12
call fcn.00419a80
mov r11, qword [r12]
mov rcx, r12
call qword [r11 + VariantCopy]
mov r11, qword [r12]
mov rcx, r12
call qword [r11 + VariantCopy]
cmp r14b, bl
je 0x4218be
lea r8d, [rsi + 0xb]
mov dword [rsp + 0x2a0], r8d
mov dil, bl
mov byte [rsp + 0x93], bl
jmp 0x4218d7
mov r8d, 4
mov dword [rsp + 0x2a0], r8d
mov dil, sil
mov byte [rsp + 0x93], sil
mov byte [rsp + 0x29c], dil
movzx esi, bl
cmp r14b, bl
mov eax, 1
cmovne esi, eax
mov dword [rsp + 0xe0], esi
lea ebx, [rax + 0x1d]
lea eax, [rbx + 0xc]
xor ecx, ecx
cmp sil, cl
cmovne ebx, eax
mov dword [rsp + 0x158], ebx
cmp dil, cl
je 0x42194d
mov dl, 0x20
mov rcx, r12
call fcn.00419670
mov r8d, ebx
lea rdx, str.Compressing
mov rcx, r12
call fcn.00419d50
mov r11, qword [r12]
lea rdx, [0x00455b00]
mov rcx, r12
call qword [r11]
mov r8d, ebx
lea rdx, str.Decompressing
mov rcx, r12
call fcn.00419d50
mov rax, qword [r12]
mov rcx, r12
call qword [rax + VariantCopy]
lea rax, str.Method
lea rdx, str.Dict
xor r13d, r13d
cmp r14b, r13b
cmovne rdx, rax
mov r8d, dword [rsp + 0x2a0]
mov rcx, r12
call fcn.00419d0c
mov ebx, r13d
lea r14d, [r13 + 6]
lea r15d, [r13 + 1]
mov r8d, 0xa
lea rdx, str.Speed
mov rcx, r12
call fcn.00419d50
mov r8d, r14d
lea rdx, str.Usage
mov rcx, r12
call fcn.00419d50
mov r8d, 7
lea rdx, [0x00456024]
mov rcx, r12
call fcn.00419d50
mov r8d, 7
lea rdx, str.Rating
mov rcx, r12
call fcn.00419d50
cmp sil, r13b
je 0x421a04
mov r8d, r14d
lea rdx, [0x00456018]
mov rcx, r12
call fcn.00419d50
mov r8d, r14d
lea rdx, str.Effec
mov rcx, r12
call fcn.00419d50
cmp dil, r13b
je 0x421a2a
cmp ebx, r13d
jne 0x421a1e
mov rax, qword [r12]
lea rdx, [0x00455b00]
mov rcx, r12
call qword [rax]
add ebx, r15d
cmp ebx, 2
jl 0x42198a
mov rax, qword [r12]
mov rcx, r12
call qword [rax + VariantCopy]
mov r8d, dword [rsp + 0x2a0]
mov dl, 0x20
mov rcx, r12
call fcn.00419670
xor ebp, ebp
mov ebx, ebp
mov r15d, dword [rsp + 0xe4]
lea r13d, [rbp + 1]
mov r8d, 0xa
lea rdx, str.KiB_s
mov rcx, r12
call fcn.00419d50
mov r8d, r14d
lea rdx, [0x00456090]
mov rcx, r12
call fcn.00419d50
mov r8d, 7
lea rdx, str.MIPS
mov rcx, r12
call fcn.00419d50
mov r8d, 7
lea rdx, str.MIPS
mov rcx, r12
call fcn.00419d50
cmp sil, bpl
je 0x421ad0
mov r8d, r14d
lea rdx, [0x00456090]
mov rcx, r12
call fcn.00419d50
mov r8d, r14d
lea rdx, [0x00456090]
mov rcx, r12
call fcn.00419d50
cmp dil, bpl
je 0x421af5
cmp ebx, ebp
jne 0x421ae9
mov rax, qword [r12]
lea rdx, [0x00455b00]
mov rcx, r12
call qword [rax]
add ebx, r13d
cmp ebx, 2
jl 0x421a56
mov rax, qword [r12]
mov rcx, r12
call qword [rax + VariantCopy]
mov r11, qword [r12]
mov rcx, r12
call qword [r11 + VariantCopy]
xor edi, edi
mov r14, rdi
mov rbx, qword [rsp + 0x110]
cmp rbx, rdi
cmovne r14, rbx
cmp byte [rsp + 0x91], dil
mov r13, qword [rsp + 0x120]
mov ebp, dword [rsp + 0xb4]
je 0x421e16
xor eax, eax
cmp dword [rsp + 0x3f0], eax
jbe 0x42228a
xor r14d, r14d
cmp edi, r14d
je 0x421b5c
mov rax, qword [r12]
mov rcx, r12
call qword [rax + VariantCopy]
mov ebx, r14d
mov rsi, qword [rsp + 0x110]
jmp 0x421b6c
xor r14d, r14d
mov r8d, 0xc
lea rdx, [0x00456004]
mov rcx, r12
call fcn.00419d0c
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x2f0], rax
mov dword [rsp + 0x2f8], ebp
cmp ebx, 2
je 0x421bac
cmp rsi, r14
jne 0x421bac
mov byte [rsp + 0x2fc], r14b
jmp 0x421bb8
mov eax, 1
mov byte [rsp + 0x2fc], al
mov qword [rsp + 0x300], rsi
lea r8, [rsp + 0x1f8]
mov rdx, r12
lea rcx, [rsp + 0x2f0]
call fcn.0041d4c0
mov esi, eax
cmp eax, r14d
jne 0x422424
mov r14, qword [rsp + 0x308]
mov rcx, qword [rsp + 0x290]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov rsi, qword [rsp + 0x110]
xor eax, eax
cmp rsi, rax
cmovne r14, rsi
inc ebx
cmp ebx, 3
jb 0x421b69
mov rcx, qword [rsp + 0x290]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov r11d, 1
mov byte [rsp + 0x2a4], r11b
mov qword [rsp + 0x2a8], r14
xor r10d, r10d
cmp byte [rsp + 0x92], r10b
jne 0x421ce1
mov rcx, r15
mov rax, r15
cmp r13, r10
je 0x421c75
mov r8, qword [rsp + 0x128]
mov rax, r8
mov dl, byte [rsp + 0x90]
cmp dl, r10b
je 0x421c81
cmp r8, r15
cmova rax, r15
jmp 0x421c7c
mov dl, byte [rsp + 0x90]
cmp dl, r10b
jne 0x421c8b
cmp r13, r10
jne 0x421c8b
mov cl, r10b
jmp 0x421c8e
mov cl, r11b
lea rdx, [rsp + 0x230]
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], cl
lea r9, [rsp + 0x1f8]
mov r8d, ebp
mov rbx, qword [rsp + 0x118]
mov rdx, rbx
mov rcx, qword [rsp + 0x3d0]
call fcn.0041f660
mov esi, eax
xor r10d, r10d
cmp eax, r10d
jne 0x422448
jmp 0x421ceb
mov rbx, qword [rsp + 0x118]
jmp 0x421cf1
mov r11d, 1
mov r9d, 0x20000
mov al, byte [rsp + 0x90]
cmp al, r10b
je 0x421d06
mov r9, r15
cmp r13, r10
je 0x421d22
mov rcx, qword [rsp + 0x128]
mov r9, rcx
cmp al, r10b
je 0x421d22
cmp rcx, r15
cmova r9, r15
mov qword [rsp + 0x50], r14
mov byte [rsp + 0x48], r11b
lea rax, [rsp + 0x250]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x1f8]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x230]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r13
mov r8d, ebp
mov rdx, rbx
mov rcx, qword [rsp + 0x3d0]
call fcn.0041db64
mov esi, eax
xor eax, eax
cmp esi, eax
jne 0x42246c
mov rcx, qword [rsp + 0x290]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov r8d, 0xc
lea rdx, [0x00456004]
mov rcx, r12
call fcn.00419d0c
mov qword [rsp + 0x2f0], rbx
mov dword [rsp + 0x2f8], ebp
mov rax, qword [rsp + 0x110]
xor ebx, ebx
cmp rax, rbx
setne byte [rsp + 0x2fc]
mov qword [rsp + 0x300], rax
lea r8, [rsp + 0x1f8]
mov rdx, r12
lea rcx, [rsp + 0x2f0]
call fcn.0041d4c0
mov esi, eax
cmp eax, ebx
jne 0x422490
mov rcx, qword [rsp + 0x290]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
inc edi
cmp edi, dword [rsp + 0x3f0]
jb 0x421b4a
mov esi, dword [rsp + 0xe0]
jmp 0x42228a
mov esi, 1
mov bpl, sil
lea rdx, str.LZMA
mov rcx, qword [rsp + 0x130]
call fcn.004028a0
cmp al, dil
jne 0x421f96
mov esi, edi
lea rdi, [0x00455790]
mov rdx, qword [rdi + 0x18]
lea rcx, [rsp + 0xb8]
call fcn.00402c64
nop
lea rcx, [rsp + 0xc8]
call fcn.00402c2c
nop
mov dl, 0x3a
mov rcx, qword [rsp + 0xb8]
call fcn.0040271c
mov ebx, eax
xor eax, eax
cmp ebx, eax
jl 0x421eb5
lea edx, [rbx + 1]
add rdx, qword [rsp + 0xb8]
lea rcx, [rsp + 0xc8]
call fcn.00402cdc
cmp ebx, dword [rsp + 0xc0]
jae 0x421eb9
mov dword [rsp + 0xc0], ebx
mov rcx, rbx
mov rax, qword [rsp + 0xb8]
xor ebx, ebx
mov byte [rcx + rax], bl
jmp 0x421ebb
xor ebx, ebx
jmp 0x421ebb
xor ebx, ebx
mov rdx, qword [rsp + 0x130]
mov rcx, qword [rsp + 0xb8]
call fcn.004028a0
cmp al, bl
je 0x421f17
cmp dword [rsp + 0xd0], ebx
je 0x421f45
lea rdx, [0x00456000]
mov rcx, qword [rsp + 0xc8]
call sub.msvcrt.dll_strcmp
cmp eax, ebx
jne 0x421efe
cmp dword [rsp + 0x1b8], ebx
je 0x421f45
mov rdx, qword [rsp + 0xc8]
lea rcx, [rsp + 0x1b0]
call fcn.0040283c
cmp al, bl
jne 0x421f45
mov rcx, qword [rsp + 0xc8]
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0xb8]
call sub.msvcrt.dll_free
inc esi
add rdi, 0x20
cmp esi, 0x13
jb 0x421e44
xor edi, edi
jmp 0x421f83
mov eax, dword [rdi + 8]
mov dword [rsp + 0x23c], eax
mov eax, dword [rdi + 0xc]
mov dword [rsp + 0x240], eax
mov eax, dword [rdi + 0x10]
mov dword [rsp + 0x244], eax
xor edi, edi
mov bpl, dil
mov rcx, qword [rsp + 0xc8]
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0xb8]
call sub.msvcrt.dll_free
cmp esi, 0x13
je 0x4224b4
cmp bpl, dil
je 0x421fc1
mov esi, 1
mov dword [rsp + 0x23c], 0x4b0
mov dword [rsp + 0x244], 4
mov dword [rsp + 0x240], 0xbe
mov byte [rsp + 0x238], sil
jmp 0x421fc6
mov esi, 1
mov edx, dword [rsp + 0xe8]
mov r8d, 0x12
cmp edx, r8d
cmovb edx, r8d
mov dword [rsp + 0xe8], edx
mov ebp, edi
cmp dword [rsp + 0x3f0], edi
jbe 0x422283
mov ecx, edx
mov eax, esi
shl eax, cl
mov ebx, edx
cmp r15d, eax
cmovb ebx, r8d
mov eax, 0x1f
cmp byte [rsp + 0x3f8], dil
cmove ebx, eax
mov ecx, ebx
mov eax, esi
shl eax, cl
cmp eax, r15d
jbe 0x42203a
mov r13d, 0xffffffff
cmp ebx, edi
jbe 0x422032
add ebx, r13d
mov ecx, ebx
mov eax, esi
shl eax, cl
cmp eax, r15d
ja 0x422020
mov r13, qword [rsp + 0x120]
mov ecx, ebx
mov edi, esi
shl edi, cl
cmp edi, r15d
ja 0x422269
lea rdx, [rsp + 0x168]
mov ecx, ebx
call fcn.0040199c
xor eax, eax
mov r11, rax
cmp byte [rsp + 0x168], al
je 0x422073
add r11, rsi
cmp byte [rsp + r11 + 0x168], al
jne 0x422066
mov byte [rsp + r11 + 0x168], 0x3a
mov byte [rsp + r11 + 0x169], al
mov r8d, 4
lea rdx, [rsp + 0x168]
mov rcx, r12
call fcn.00419d0c
mov dword [rsp + 0x298], edi
lea rdx, [rsp + 0x190]
lea rcx, [rsp + 0x340]
call fcn.0041c2dc
nop
lea rdx, [rsp + 0x1a0]
lea rcx, [rsp + 0x350]
call fcn.00402ca8
nop
lea rdx, [rsp + 0x1b0]
lea rcx, [rsp + 0x360]
call fcn.004033f8
nop
lea rdx, str.LZMA
mov rcx, qword [rsp + 0x350]
call fcn.004028a0
xor edi, edi
cmp al, dil
je 0x42216b
mov word [rsp + 0x218], 0x13
mov word [rsp + 0x21a], di
mov dword [rsp + 0x220], ebx
lea rdx, [0x00454378]
lea rcx, [rsp + 0x2c8]
call fcn.004033a0
nop
lea r8, [rsp + 0x218]
mov rdx, rax
lea rcx, [rsp + 0x340]
call fcn.0040f658
mov esi, eax
mov rcx, qword [rsp + 0x2c8]
call sub.msvcrt.dll_free
cmp esi, edi
jne 0x4224da
lea rcx, [rsp + 0x218]
call fcn.0040b1ec
lea esi, [rdi + 1]
cmp r13, rdi
je 0x42217a
mov rax, qword [rsp + 0x128]
jmp 0x42218f
mov eax, dword [rsp + 0x298]
cmp rax, 0x40000
jb 0x42218f
add rax, 0x10000
lea rcx, [rsp + 0x238]
mov qword [rsp + 0x58], rcx
lea rcx, [rsp + 0x230]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], r12
mov dword [rsp + 0x40], 0x1e
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x340]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x1f8]
mov qword [rsp + 0x20], rax
mov r9d, dword [rsp + 0xb4]
mov r8b, sil
mov rdx, qword [rsp + 0x118]
mov rcx, qword [rsp + 0x3d0]
call fcn.0041e228
mov esi, eax
mov rax, qword [r12]
mov rcx, r12
call qword [rax + VariantCopy]
cmp esi, edi
jne 0x422517
cmp byte [rsp + 0x3f8], dil
je 0x42224a
lea rcx, [rsp + 0x340]
call fcn.0041d86c
mov esi, 1
add ebx, esi
mov ecx, ebx
mov edi, esi
shl edi, cl
cmp edi, r15d
jbe 0x422049
mov edx, dword [rsp + 0xe8]
xor edi, edi
lea r8d, [rsi + 0x11]
jmp 0x42226b
lea rcx, [rsp + 0x340]
call fcn.0041d86c
mov edx, dword [rsp + 0xe8]
mov esi, 1
lea r8d, [rsi + 0x11]
jmp 0x42226b
xor edi, edi
add ebp, esi
cmp ebp, dword [rsp + 0x3f0]
jb 0x421ff0
mov esi, dword [rsp + 0xe0]
jmp 0x42228a
mov esi, dword [rsp + 0xe0]
mov eax, dword [rsp + 0x2a0]
mov edi, dword [rsp + 0x158]
lea r8d, [rdi + rax]
mov dl, 0x2d
mov rcx, r12
call fcn.00419670
mov bl, byte [rsp + 0x93]
xor ebp, ebp
cmp bl, bpl
je 0x4222d1
mov rax, qword [r12]
lea rdx, [0x00455b00]
mov rcx, r12
call qword [rax]
mov r8d, edi
mov dl, 0x2d
mov rcx, r12
call fcn.00419670
mov rax, qword [r12]
mov rcx, r12
call qword [rax + VariantCopy]
cmp bl, bpl
je 0x42233f
mov r8d, dword [rsp + 0x2a0]
lea rdx, str.Avr:
mov rcx, r12
call fcn.00419d0c
lea r9, [rsp + 0x250]
mov r8, r14
mov dl, sil
mov rcx, r12
call fcn.004198ac
mov r11, qword [r12]
lea rdx, [0x00455b00]
mov rcx, r12
call qword [r11]
lea r9, [rsp + 0x270]
mov r8, r14
mov dl, sil
mov rcx, r12
call fcn.004198ac
mov r11, qword [r12]
mov rcx, r12
call qword [r11 + VariantCopy]
mov r8d, dword [rsp + 0x2a0]
lea rdx, str.Tot:
mov rcx, r12
call fcn.00419d0c
mov r11, qword [rsp + 0x258]
mov rcx, qword [rsp + 0x278]
add rcx, r11
mov qword [rsp + 0x320], rcx
mov rcx, qword [rsp + 0x260]
mov rax, qword [rsp + 0x280]
add rcx, rax
mov qword [rsp + 0x328], rcx
mov rcx, qword [rsp + 0x268]
mov rax, qword [rsp + 0x288]
add rcx, rax
mov qword [rsp + 0x330], rcx
mov rcx, qword [rsp + 0x250]
mov rax, qword [rsp + 0x270]
add rcx, rax
mov qword [rsp + 0x318], rcx
lea r9, [rsp + 0x318]
mov r8, r14
mov dl, sil
mov rcx, r12
call fcn.004198ac
mov r11, qword [r12]
mov rcx, r12
call qword [r11 + VariantCopy]
mov eax, dword [rsp + 0x150]
mov edx, 1
add eax, edx
mov dword [rsp + 0x150], eax
cmp eax, 3
mov dil, byte [rsp + 0x90]
mov r14b, byte [rsp + 0x91]
lea rsi, str.Benchmark_threads:
mov rbx, rbp
lea r8d, [rdx + 0x11]
jb 0x421695
jmp 0x422555
mov rcx, qword [rsp + 0x130]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
jmp 0x422544
mov rcx, qword [rsp + 0x130]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
jmp 0x422544
mov rcx, qword [rsp + 0x130]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
jmp 0x422544
mov rcx, qword [rsp + 0x130]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
jmp 0x422544
mov rcx, qword [rsp + 0x130]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
mov esi, 0x80004001
jmp 0x422544
lea rcx, [rsp + 0x218]
call fcn.0040b1ec
nop
lea rcx, [rsp + 0x340]
call fcn.0041d86c
nop
mov rcx, qword [rsp + 0x130]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
jmp 0x422544
lea rcx, [rsp + 0x340]
call fcn.0041d86c
nop
mov rcx, qword [rsp + 0x130]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
lea rcx, [rsp + 0x190]
call fcn.0041d86c
mov eax, esi
jmp 0x4225a8
mov rcx, qword [rsp + 0x130]
call sub.msvcrt.dll_free
nop
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
lea rcx, [rsp + 0x190]
call fcn.0041d86c
xor eax, eax
jmp 0x4225a8
mov rdx, r13
lea rcx, [0x0045bf00]
call qword [0x0045bf08]
nop
lea rcx, [rsp + 0x190]
call fcn.0041d86c
mov eax, 0x80070057
add rsp, 0x388
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret