Function at 0x41ec50
Capabilities:
Check for time delay via gettickcount

Disassembly:
mov eax, 0x4879be
call fcn.00484f70
sub esp, 0x1dc
push ebx
push esi
push edi
mov dword [ebp - 0x40], edx
mov ebx, ecx
call fcn.0041e53e
test al, al
jne 0x41ec79
push 1
pop eax
jmp 0x41ffea
xor edi, edi
mov dword [ebp - 0xb0], SysReAllocStringLen
mov dword [ebp - 0xac], edi
call fcn.00408aab
mov esi, eax
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0x74], esi
call fcn.00408ac0
and byte [ebp - 0x25], 0
lea ecx, [ebp - 0xd4]
mov byte [ebp - 0xa4], al
mov dword [ebp - 0x68], esi
mov dword [ebp - 0xa8], 4
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], edi
call fcn.0040e129
mov dword [ebp - 4], edi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x38], edi
mov eax, dword [ebp + 8]
mov byte [ebp - 4], 1
mov dword [ebp - 0x48], edi
mov eax, dword [eax + 4]
cmp eax, edi
jbe 0x41effd
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x48]
mov eax, dword [eax]
mov esi, dword [eax + ecx*4]
lea ecx, [ebp - 0x58]
push esi
call fcn.00402bed
mov ecx, dword [ebp - 0x58]
call fcn.0040211c
mov ecx, dword [ebp - 0x58]
mov edx, str.file
call fcn.004021f7
test al, al
je 0x41edf0
cmp dword [esi + 0x10], edi
je 0x41f150
or dword [ebp - 0xe4], 0xffffffff
push dword [esi + 0xc]
lea ecx, [ebp - 0xe4]
mov byte [ebp - 4], 3
call fcn.00406eb9
test al, al
je 0x41f157
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0xe4]
push eax
call fcn.00406aaa
test al, al
je 0x41f165
cmp dword [ebp - 0x20], edi
ja 0x41f157
jb 0x41ed70
cmp dword [ebp - 0x24], 0x80000000
jae 0x41f157
mov eax, dword [ebp - 0x24]
or eax, dword [ebp - 0x20]
je 0x41f157
push dword [ebp - 0x24]
lea ecx, [ebp - 0x3c]
call fcn.0041d2c9
test al, al
je 0x41f15e
lea eax, [ebp - 0x14]
lea ecx, [ebp - 0xe4]
push eax
push dword [ebp - 0x24]
push dword [ebp - 0x38]
call fcn.00406f16
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, dword [ebp - 0x24]
jne 0x41f165
cmp ecx, dword [ebp - 0x20]
jne 0x41f165
cmp ebx, edi
je 0x41ede0
mov eax, dword [ebx]
push str.file_size_
mov ecx, ebx
call dword [eax]
xor edx, edx
mov ecx, ebx
push dword [ebp - 0x20]
push dword [ebp - 0x24]
call fcn.0041e7d6
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
lea ecx, [ebp - 0xe4]
call fcn.00406a8a
jmp 0x41efde
mov word [ebp - 0x88], di
mov word [ebp - 0x86], di
mov dword [ebp - 0x80], edi
cmp dword [esi + 0x10], edi
mov byte [ebp - 4], 4
je 0x41ee18
lea edx, [ebp - 0x88]
lea ecx, [esi + 0xc]
call fcn.00421a80
mov ecx, dword [ebp - 0x58]
mov edx, str.time
call fcn.004021f7
test al, al
je 0x41ee67
push 0x48ee20
lea ecx, [ebp - 0x34]
call fcn.00402baa
lea eax, [ebp - 0xa8]
lea edx, [ebp - 0x88]
push eax
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 5
call fcn.0040b9a0
mov esi, eax
push dword [ebp - 0x34]
call fcn.00401c77
cmp esi, edi
pop ecx
jne 0x41f18e
jmp 0x41efd3
mov ecx, dword [ebp - 0x58]
mov edx, str.freq
call fcn.004021f7
test al, al
je 0x41ef0c
push 0x48ee20
lea ecx, [ebp - 0xf0]
mov dword [ebp - 0x18], edi
call fcn.00402baa
lea eax, [ebp - 0x18]
lea edx, [ebp - 0x88]
push eax
lea ecx, [ebp - 0xf0]
mov byte [ebp - 4], 6
call fcn.0040b9a0
mov esi, eax
mov byte [ebp - 4], 4
push dword [ebp - 0xf0]
call fcn.00401c77
cmp esi, edi
pop ecx
jne 0x41f18e
cmp dword [ebp - 0x18], edi
je 0x41f17d
push edi
push 0xf4240
push edi
push dword [ebp - 0x18]
call fcn.004852b0
cmp ebx, edi
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
je 0x41efd3
mov eax, dword [ebx]
push 0x48ee10
mov ecx, ebx
call dword [eax]
xor edx, edx
mov ecx, ebx
push edi
push dword [ebp - 0x18]
call fcn.0041e7d6
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
jmp 0x41efd3
push 0x48d874
lea ecx, [ebp - 0x58]
call fcn.004021b6
test al, al
je 0x41efb5
mov eax, dword [ebp - 0x58]
lea ecx, [ebp - 0xa0]
add eax, 4
push eax
call fcn.00402baa
mov esi, dword [sym.imp.MSVCRT.dll_wcscmp]
push 0x48d35c
push dword [ebp - 0xa0]
mov byte [ebp - 4], 7
call esi
neg eax
sbb al, al
pop ecx
inc al
pop ecx
mov byte [ebp - 0x19], al
je 0x41ef69
push dword [ebp - 0xa0]
mov byte [ebp - 0x25], 1
call fcn.00401c77
pop ecx
jmp 0x41efd3
cmp dword [ebp - 0x9c], edi
jne 0x41ef8b
cmp word [ebp - 0x88], 8
jne 0x41ef8b
push 0x48d35c
push dword [ebp - 0x80]
call esi
pop ecx
test eax, eax
pop ecx
je 0x41ef57
lea eax, [ebp - 0x68]
lea edx, [ebp - 0x88]
push eax
lea ecx, [ebp - 0xa0]
push dword [ebp - 0x74]
call fcn.0040b9ec
mov esi, eax
push dword [ebp - 0xa0]
cmp esi, edi
jne 0x41f184
jmp 0x41ef61
lea eax, [ebp - 0x88]
lea ecx, [ebp - 0xd4]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.0040c314
cmp eax, edi
jne 0x41f18c
lea ecx, [ebp - 0x88]
call fcn.004087be
push dword [ebp - 0x58]
mov byte [ebp - 4], 1
call fcn.00401c77
inc dword [ebp - 0x48]
mov eax, dword [ebp + 8]
pop ecx
mov ecx, dword [ebp - 0x48]
cmp ecx, dword [eax + 4]
jb 0x41ece6
cmp ebx, edi
je 0x41f03e
lea ecx, [ebp - 0x58]
call fcn.00402528
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 8
call fcn.0041eb0c
mov eax, dword [ebx]
mov ecx, ebx
push dword [ebp - 0x58]
call dword [eax]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov byte [ebp - 4], 1
push dword [ebp - 0x58]
call fcn.00401c77
mov eax, dword [ebx]
mov ecx, ebx
mov dword [esp], str.CPU_Freq:
call dword [eax]
cmp ebx, edi
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x6c], 4
je 0x41f25a
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x30], 0x40
or eax, dword [ebp - 0x5c]
mov dword [ebp - 0x2c], edi
je 0x41f09e
push edi
push 0xf4240
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
call fcn.004852b0
cmp dword [ebp - 0x5c], edx
ja 0x41f09e
jb 0x41f07f
cmp dword [ebp - 0x60], eax
jae 0x41f09e
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
push 1
pop ecx
call fcn.00485210
cmp edx, edi
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
ja 0x41f062
jb 0x41f09e
cmp eax, 1
ja 0x41f062
mov dword [ebp + 8], edi
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 8]
cmp eax, edi
jne 0x41f2ec
call fcn.0041c965
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], edx
push dword [0x4a04d4]
push 0
push 0xf4240
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
call fcn.004852b0
push 7
pop ecx
call fcn.00485210
mov ecx, dword [ebp - 0x24]
mov edx, eax
call fcn.00420bd4
mov dword [ebp - 0x18], eax
call fcn.0041c965
mov esi, eax
mov edi, edx
sub esi, dword [ebp - 0x24]
sbb edi, dword [ebp - 0x20]
mov eax, esi
mov dword [ebp - 0x24], esi
or eax, edi
mov dword [ebp - 0x20], edi
jne 0x41f10e
and dword [ebp - 0x20], 0
mov dword [ebp - 0x24], 1
call fcn.0041c96e
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], edx
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
push edx
push eax
call fcn.004852b0
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push edx
push eax
call fcn.00485120
or esi, edi
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x98], edx
jne 0x41f19b
mov eax, dword [ebx]
push 0x48ee00
mov ecx, ebx
call dword [eax]
jmp 0x41f1bd
mov esi, 0x80070057
jmp 0x41f175
mov esi, 0x80070057
jmp 0x41f16a
mov esi, 0x8007000e
jmp 0x41f16a
mov esi, 0x80004005
lea ecx, [ebp - 0xe4]
call fcn.00406a8a
push dword [ebp - 0x58]
jmp 0x41ff83
mov esi, 0x80070057
jmp 0x41f18e
call fcn.00401c77
pop ecx
jmp 0x41f18e
mov esi, eax
lea ecx, [ebp - 0x88]
call fcn.004087be
jmp 0x41f175
push dword [ebp - 0x98]
xor edx, edx
cmp dword [ebp - 0x18], 0xf1541213
mov ecx, ebx
push dword [ebp - 0x9c]
sete dl
add edx, 5
call fcn.0041e7d6
cmp dword [ebp + 8], 3
jl 0x41f21a
lea eax, [ebp - 0x70]
push eax
push 0
push 0xf4240
push dword [ebp - 0x98]
push dword [ebp - 0x9c]
call fcn.004852b0
mov ecx, dword [ebp - 0xa8]
push edx
push eax
xor dl, dl
call fcn.0042007c
cmp dword [ebp + 8], 8
jge 0x41f224
mov eax, dword [ebp - 0x48]
cmp dword [ebp - 0x20], eax
ja 0x41f224
jb 0x41f206
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x24], eax
jae 0x41f224
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
push 1
pop ecx
call fcn.004852f0
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
inc dword [ebp + 8]
xor edi, edi
jmp 0x41f0a1
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov edx, str.size:
mov ecx, ebx
push dword [ebp - 0x74]
push str.CPU_hardware_threads:
push dword [ebp - 0xac]
push dword [ebp - 0xb0]
push dword [ebp - 0xa4]
call fcn.00420d5c
xor edi, edi
push 1
pop esi
cmp dword [ebp - 0x68], esi
jb 0x41ffcc
cmp dword [ebp - 0x68], 0x1000
ja 0x41ffcc
lea eax, [ebp - 0x78]
lea ecx, [ebp - 0xd4]
push eax
call fcn.0041fffb
cmp dword [ebp - 0xc4], edi
mov byte [ebp - 0x1a], al
jne 0x41f29d
push str.LZMA
lea ecx, [ebp - 0xc8]
call fcn.004025a9
cmp dword [ebp - 0x40], edi
je 0x41f2f3
and byte [ebp - 0xe4], 0
lea ecx, [ebp - 0xe4]
call fcn.0041ccb9
lea ecx, [ebp - 0xd4]
call fcn.0042002d
lea ecx, [ebp - 0xe4]
add eax, 0x10000
push ecx
mov edx, dword [ebp - 0x68]
push dword [ebp - 0x40]
mov cl, 1
push ebx
push 0x1e
push dword [ebp - 0x38]
push eax
lea eax, [ebp - 0xd4]
push eax
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call fcn.004200ef
mov esi, eax
jmp 0x41ffd1
lea eax, [ebp - 0xc8]
lea ecx, [ebp - 0x94]
push eax
call fcn.00402584
mov ecx, dword [ebp - 0x94]
mov edx, 0x48edd4
mov byte [ebp - 4], 9
call fcn.00402214
test al, al
je 0x41f32d
push str.crc32
lea ecx, [ebp - 0x94]
call fcn.004025a9
lea eax, [ebp - 0x94]
lea ecx, [ebp - 0xc8]
push eax
call fcn.00402606
lea edx, [ebp - 0x1e8]
lea ecx, [ebp - 0x94]
call fcn.00408d93
test al, al
je 0x41f6a3
cmp ebx, edi
je 0x41ff7d
cmp byte [ebp - 0x1a], 0
jne 0x41f36d
mov dword [ebp - 0x78], 0x1000000
mov dword [ebp - 0x14], 0x2710
mov dword [ebp - 0x74], edi
mov esi, 0x48eb7c
push dword [esi + 8]
lea ecx, [ebp - 0x58]
call fcn.0040254a
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0xa
call fcn.00402528
mov ecx, dword [ebp - 0x58]
mov dl, 0x3a
mov byte [ebp - 4], 0xb
call fcn.004020da
mov edi, eax
test edi, edi
jl 0x41f3c6
mov eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x64]
lea eax, [edi + eax + 1]
push eax
call fcn.004025a9
cmp edi, dword [ebp - 0x54]
jae 0x41f3c6
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x54], edi
and byte [edi + eax], 0
mov edx, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x58]
call fcn.00421aeb
test al, al
je 0x41f3f5
mov eax, dword [esi]
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0xbc]
mov dword [ebp - 0x14], eax
lea eax, [esi + 4]
mov dword [ebp - 0x74], eax
call fcn.00402252
test al, al
jne 0x41f41c
push dword [ebp - 0x64]
call fcn.00401c77
push dword [ebp - 0x58]
mov byte [ebp - 4], 9
call fcn.00401c77
add esi, 0x10
pop ecx
cmp esi, 0x48ebec
pop ecx
jb 0x41f37c
jmp 0x41f432
push dword [ebp - 0x64]
call fcn.00401c77
push dword [ebp - 0x58]
mov byte [ebp - 4], 9
call fcn.00401c77
pop ecx
pop ecx
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov eax, dword [ebx]
mov ecx, ebx
push str.Size
call dword [eax]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
call fcn.00421acf
mov edi, eax
mov ecx, ebx
push 6
pop edx
push 0
push edi
call fcn.0041e7d6
cmp edi, dword [ebp - 0x68]
push 1
pop esi
mov dword [ebp + 8], esi
jae 0x41f48a
mov edx, dword [ebp - 0x68]
mov ecx, esi
call fcn.00421acf
mov edi, eax
mov ecx, ebx
push 6
pop edx
push 0
push edi
call fcn.0041e7d6
inc esi
cmp edi, dword [ebp - 0x68]
jb 0x41f468
mov dword [ebp + 8], esi
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov eax, esi
shl eax, 3
push eax
call fcn.00401c50
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x44], eax
test esi, esi
mov byte [ebp - 4], 0xc
jbe 0x41f4cd
mov esi, eax
mov eax, dword [ebp + 8]
and dword [esi], 0
and dword [esi + 4], 0
lea ecx, [eax*8 - 5]
lea edi, [esi + 8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
xor eax, eax
cmp dword [ebp + 0xc], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x40], eax
jbe 0x41f66c
mov dword [ebp + 0x10], 0xa
xor edi, edi
mov ecx, dword [ebp + 0x10]
push 1
pop eax
shl eax, cl
cmp eax, dword [ebp - 0x78]
mov dword [ebp - 0xa4], eax
ja 0x41f608
lea edx, [ebp - 0x88]
call fcn.00401765
xor eax, eax
cmp byte [ebp - 0x88], al
je 0x41f521
inc eax
cmp byte [ebp + eax - 0x88], 0
jne 0x41f516
mov byte [ebp + eax - 0x88], 0x3a
inc eax
lea ecx, [ebp - 0x88]
mov byte [ebp + eax - 0x88], 0x20
and byte [ebp + eax - 0x87], 0
mov eax, dword [ebx]
push ecx
mov ecx, ebx
call dword [eax]
cmp dword [ebp + 8], edi
mov dword [ebp - 0x48], edi
jbe 0x41f5ed
mov esi, dword [ebp - 0x18]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 8]
cmp eax, edi
jne 0x41f688
mov edx, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x48]
call fcn.00421acf
lea ecx, [ebp - 0xd4]
mov edx, dword [ebp - 0xa4]
push edi
push edi
push edi
push edi
push edi
push ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x24], edi
sub ecx, 0x11
mov dword [ebp - 0x20], edi
neg ecx
sbb ecx, ecx
not ecx
and ecx, dword [ebp - 0x74]
push ecx
push 1
push dword [ebp - 0x14]
lea ecx, [ebp - 0x24]
push ecx
mov ecx, eax
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call fcn.00421286
cmp eax, edi
jne 0x41f688
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
push 0x14
pop ecx
call fcn.00485210
mov ecx, ebx
push edx
push eax
push 6
pop edx
call fcn.0041e7d6
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
add dword [esi], eax
adc dword [esi + 4], ecx
inc dword [ebp - 0x48]
mov eax, dword [ebp - 0x48]
add esi, 8
cmp eax, dword [ebp + 8]
jb 0x41f556
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
add dword [ebp - 0x60], 1
adc dword [ebp - 0x5c], edi
inc dword [ebp + 0x10]
cmp dword [ebp + 0x10], 0x20
jb 0x41f4ea
inc dword [ebp - 0x40]
mov eax, dword [ebp - 0x40]
cmp eax, dword [ebp + 0xc]
jb 0x41f4e1
mov eax, dword [ebp - 0x60]
or eax, dword [ebp - 0x5c]
je 0x41f66c
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov eax, dword [ebx]
mov ecx, ebx
push str.Avg:
call dword [eax]
mov edi, dword [ebp + 8]
test edi, edi
jbe 0x41f665
mov esi, dword [ebp - 0x18]
push dword [ebp - 0x5c]
push dword [ebp - 0x60]
push dword [esi + 4]
push dword [esi]
call fcn.00485120
push 0x14
pop ecx
call fcn.00485210
mov ecx, ebx
push edx
push eax
push 6
pop edx
call fcn.0041e7d6
add esi, 8
dec edi
jne 0x41f63b
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
push dword [ebp - 0x18]
call fcn.00401c77
push dword [ebp - 0x94]
call fcn.00401c77
pop ecx
pop ecx
xor esi, esi
jmp 0x41ffd1
push dword [ebp - 0x18]
mov esi, eax
call fcn.00401c77
push dword [ebp - 0x94]
call fcn.00401c77
pop ecx
jmp 0x41ff88
mov ecx, dword [ebp - 0xc8]
mov edx, 0x48edb8
call fcn.00402214
mov ecx, dword [ebp - 0xc8]
and byte [ebp - 0x19], 0
mov edx, str.hash
mov byte [ebp - 0x48], al
call fcn.00402214
test al, al
je 0x41f6d6
mov byte [ebp - 0x19], 1
mov byte [ebp - 0x48], 1
mov dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x68]
cmp byte [ebp - 0x25], 0
mov dword [ebp - 0x44], eax
jne 0x41f6f1
cmp dword [ebp - 0x18], 0
jne 0x41ff6d
jmp 0x41f729
cmp dword [ebp - 0x18], 0
mov dword [ebp - 0x44], 1
je 0x41f729
cmp dword [ebp - 0x74], 2
jb 0x41ff6d
mov eax, dword [ebp - 0x74]
cmp dword [ebp - 0x18], 1
mov dword [ebp - 0x44], eax
jne 0x41f720
cmp eax, 4
jb 0x41f729
shr eax, 1
mov dword [ebp - 0x44], eax
jmp 0x41f729
cmp eax, 4
jb 0x41ff6d
lea ecx, [ebp - 0x190]
call fcn.00420dd2
lea ecx, [ebp - 0x190]
call fcn.00420df8
cmp dword [ebp - 0x18], 0
mov dword [ebp - 0x138], ebx
jbe 0x41f759
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
cmp byte [ebp - 0x1a], 0
jne 0x41f7e4
mov al, byte [ebp - 0x48]
neg al
sbb eax, eax
add eax, 0x19
cmp byte [ebp - 0xa4], 0
mov edi, eax
mov esi, edi
je 0x41f7b1
cmp edi, 0x12
jbe 0x41f7b1
push dword [ebp - 0x48]
mov ecx, esi
push 1
pop edx
shl edx, cl
mov ecx, dword [ebp - 0x44]
call fcn.0041e369
add eax, 0x800000
adc edx, 0
cmp edx, dword [ebp - 0xac]
jb 0x41f7b1
ja 0x41f7ab
cmp eax, dword [ebp - 0xb0]
jbe 0x41f7b1
dec esi
cmp esi, 0x12
ja 0x41f77f
push 1
mov ecx, esi
pop eax
shl eax, cl
cmp byte [ebp - 0x48], 0
mov dword [ebp - 0x78], eax
je 0x41f7e4
cmp esi, edi
je 0x41f7e4
mov eax, dword [ebx]
push str.Dictionary_reduced_to:
mov ecx, ebx
call dword [eax]
mov ecx, ebx
push 1
pop edx
push 0
push esi
call fcn.0041e7d6
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x78]
push ecx
push str.Benchmark_threads:
push dword [ebp - 0x48]
call fcn.0041e369
mov ecx, ebx
push edx
push eax
push 1
mov edx, str.usage:
call fcn.00420d5c
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
cmp byte [ebp - 0x48], 0
je 0x41f825
and byte [ebp - 0xd], 0
mov dword [ebp - 0x12c], 0xc
jmp 0x41f833
mov dword [ebp - 0x12c], 4
mov byte [ebp - 0xd], 1
mov al, byte [ebp - 0xd]
and byte [ebp + 0xb], 0
xor esi, esi
cmp byte [ebp - 0x48], 0
mov byte [ebp - 0x130], al
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x2c], esi
je 0x41f852
mov byte [ebp + 0xb], 1
cmp byte [ebp + 0xb], 0
mov dword [ebp - 0x40], 0x1e
je 0x41f866
mov dword [ebp - 0x40], 0x2a
test al, al
je 0x41f8a1
mov edx, dword [ebp - 0x12c]
mov ecx, ebx
call fcn.0041e82e
mov edx, str.Compressing
mov ecx, ebx
push dword [ebp - 0x40]
call fcn.0041eadc
mov eax, dword [ebx]
mov ecx, ebx
push dword [0x4a04d8]
call dword [eax]
mov edx, str.Decompressing
mov ecx, ebx
push dword [ebp - 0x40]
call fcn.0041eadc
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
cmp byte [ebp - 0x48], 0
mov edx, str.Method
jne 0x41f8b8
mov edx, str.Dict
push dword [ebp - 0x12c]
mov ecx, ebx
call fcn.0041eaae
mov dword [ebp - 0x14], esi
push 6
pop esi
push 7
pop edi
push 0xa
mov edx, str.Speed
mov ecx, ebx
call fcn.0041eadc
mov edx, str.Usage
mov ecx, ebx
push esi
call fcn.0041eadc
mov edx, 0x48ed38
mov ecx, ebx
push edi
call fcn.0041eadc
mov edx, str.Rating
mov ecx, ebx
push edi
call fcn.0041eadc
cmp byte [ebp + 0xb], 0
je 0x41f923
push esi
mov edx, 0x48ed2c
mov ecx, ebx
call fcn.0041eadc
mov edx, str.Effec
mov ecx, ebx
push esi
call fcn.0041eadc
cmp byte [ebp - 0xd], 0
je 0x41f944
cmp dword [ebp - 0x14], 0
jne 0x41f93b
mov eax, dword [ebx]
push dword [0x4a04d8]
mov ecx, ebx
call dword [eax]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x41f8ce
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov edx, dword [ebp - 0x12c]
mov ecx, ebx
call fcn.0041e82e
and dword [ebp - 0x14], 0
push 0xa
mov edx, str.KiB_s
mov ecx, ebx
call fcn.0041eadc
mov edx, 0x48ed18
mov ecx, ebx
push esi
call fcn.0041eadc
mov edx, str.MIPS
mov ecx, ebx
push edi
call fcn.0041eadc
mov edx, str.MIPS
mov ecx, ebx
push edi
call fcn.0041eadc
cmp byte [ebp + 0xb], 0
je 0x41f9b1
push esi
mov edx, 0x48ed18
mov ecx, ebx
call fcn.0041eadc
mov edx, 0x48ed18
mov ecx, ebx
push esi
call fcn.0041eadc
cmp byte [ebp - 0xd], 0
je 0x41f9d2
cmp dword [ebp - 0x14], 0
jne 0x41f9c9
mov eax, dword [ebx]
push dword [0x4a04d8]
mov ecx, ebx
call dword [eax]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x41f95c
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
mov edx, eax
or edx, ecx
je 0x41f9f2
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], ecx
cmp byte [ebp - 0x48], 0
je 0x41fbc5
and dword [ebp - 0x14], 0
cmp dword [ebp + 0xc], 0
jbe 0x41fe0f
xor edi, edi
cmp dword [ebp - 0x14], edi
je 0x41fa18
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
push 0xc
mov edx, 0x48ed0c
mov ecx, ebx
call fcn.0041eaae
cmp edi, 2
je 0x41fa37
mov eax, dword [ebp - 0x60]
or eax, dword [ebp - 0x5c]
jne 0x41fa37
xor eax, eax
jmp 0x41fa3a
push 1
pop eax
lea ecx, [ebp - 0x98]
mov edx, ebx
push ecx
lea ecx, [ebp - 0x30]
push ecx
mov ecx, dword [ebp - 0x44]
push dword [ebp - 0x5c]
push dword [ebp - 0x60]
push eax
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call fcn.00420f70
mov esi, eax
test esi, esi
jne 0x41ff7d
lea ecx, [ebp - 0x190]
call fcn.0041eaa6
mov ecx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
mov edx, ecx
or edx, eax
je 0x41fa83
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], eax
cmp edi, 2
jne 0x41faa8
or ecx, eax
je 0x41fa91
push 1
pop edx
jmp 0x41fa93
xor edx, edx
lea eax, [ebp - 0x70]
mov ecx, dword [ebp - 0xa8]
push eax
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
call fcn.0042007c
inc edi
cmp edi, 3
jb 0x41fa18
lea ecx, [ebp - 0x190]
call fcn.0041eaa6
lea ecx, [ebp - 0x190]
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
push 1
call fcn.0041e663
cmp byte [ebp - 0x19], 0
jne 0x41fb15
mov eax, dword [ebp - 0x3c]
xor edx, edx
cmp dword [ebp - 0x38], edx
jne 0x41fae3
mov eax, dword [ebp - 0x78]
cmp byte [ebp - 0x1a], 0
jne 0x41faee
cmp dword [ebp - 0x38], edx
je 0x41faf1
push 1
pop edx
lea ecx, [ebp - 0x190]
push ecx
push ebx
push dword [ebp - 0x38]
mov ecx, dword [ebp - 0x44]
push eax
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call fcn.00420e2b
mov esi, eax
test esi, esi
jne 0x41ff7d
push dword [ebp - 0x2c]
lea eax, [ebp - 0x178]
mov ecx, dword [ebp - 0x44]
mov edx, 0x20000
push dword [ebp - 0x30]
push 1
push eax
lea eax, [ebp - 0x190]
push eax
push ebx
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call fcn.0042196f
mov esi, eax
test esi, esi
jne 0x41ff7d
lea ecx, [ebp - 0x190]
call fcn.0041eaa6
mov edx, 0x48ed0c
mov ecx, ebx
push 0xc
call fcn.0041eaae
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x60]
or eax, dword [ebp - 0x5c]
je 0x41fb7b
push 1
pop eax
jmp 0x41fb7d
xor eax, eax
lea ecx, [ebp - 0x20]
mov edx, ebx
push ecx
lea ecx, [ebp - 0x54]
push ecx
mov ecx, dword [ebp - 0x44]
push dword [ebp - 0x5c]
push dword [ebp - 0x60]
push eax
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call fcn.00420f70
mov esi, eax
test esi, esi
jne 0x41ff7d
lea ecx, [ebp - 0x190]
call fcn.0041eaa6
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp + 0xc]
jb 0x41fa0a
jmp 0x41fe0f
mov ecx, dword [ebp - 0x94]
mov edx, str.LZMA
call fcn.00402214
test al, al
jne 0x41fc1b
mov esi, 0x48e9f4
push dword [esi]
lea ecx, [ebp - 0xf0]
call fcn.0040254a
mov edx, dword [ebp - 0x94]
mov ecx, dword [esi]
mov byte [ebp - 4], 0xd
call fcn.00421aeb
test al, al
jne 0x41fc5f
push dword [ebp - 0xf0]
mov byte [ebp - 4], 9
call fcn.00401c77
add esi, 0x18
pop ecx
cmp esi, 0x48eb8c
jb 0x41fbde
lea ecx, [ebp - 0x18c]
call fcn.0041ccb9
and dword [ebp - 0x14], 0
cmp dword [ebp + 0xc], 0
jbe 0x41fe0f
mov eax, dword [ebp - 0x78]
cmp eax, 0x400000
sbb esi, esi
and esi, 0xfffffffc
add esi, 0x16
cmp byte [ebp + 0x10], 0
jne 0x41fc4d
push 0x1f
pop esi
push 1
mov ecx, esi
pop edx
shl edx, cl
cmp edx, eax
jbe 0x41fc8c
test esi, esi
jbe 0x41fc8c
dec esi
jmp 0x41fc4d
mov eax, dword [esi - 0xc]
push dword [ebp - 0xf0]
mov dword [ebp - 0x188], eax
mov eax, dword [esi - 8]
mov dword [ebp - 0x184], eax
mov eax, dword [esi - 4]
mov dword [ebp - 0x180], eax
mov byte [ebp - 4], 9
call fcn.00401c77
pop ecx
jmp 0x41fc26
push 1
mov ecx, esi
pop edi
shl edi, cl
cmp edi, eax
ja 0x41fe00
lea edx, [ebp - 0x110]
mov ecx, esi
call fcn.00401765
xor eax, eax
cmp byte [ebp - 0x110], al
je 0x41fcbd
inc eax
cmp byte [ebp + eax - 0x110], 0
jne 0x41fcb2
mov byte [ebp + eax - 0x110], 0x3a
and byte [ebp + eax - 0x10f], 0
push 4
lea edx, [ebp - 0x110]
mov ecx, ebx
call fcn.0041eaae
lea eax, [ebp - 0xd4]
lea ecx, [ebp - 0x1e0]
push eax
mov dword [ebp - 0x134], edi
call fcn.00416409
mov ecx, dword [ebp - 0x1d4]
mov edx, str.LZMA
mov byte [ebp - 4], 0xe
call fcn.00402214
test al, al
je 0x41fd79
and word [ebp - 0xfe], 0
mov word [ebp - 0x100], 0x13
mov dword [ebp - 0xf8], esi
push 0x48ed08
lea ecx, [ebp - 0x1bc]
mov byte [ebp - 4], 0xf
call fcn.00402baa
lea eax, [ebp - 0x100]
lea ecx, [ebp - 0x1e0]
push eax
lea eax, [ebp - 0x1bc]
push eax
mov byte [ebp - 4], 0x10
call fcn.0040c314
mov edi, eax
push dword [ebp - 0x1bc]
call fcn.00401c77
test edi, edi
pop ecx
jne 0x41ff8b
lea ecx, [ebp - 0x100]
mov byte [ebp - 4], 0xe
call fcn.004087be
cmp dword [ebp - 0x38], 0
je 0x41fd84
mov eax, dword [ebp - 0x3c]
jmp 0x41fd96
mov eax, dword [ebp - 0x134]
cmp eax, 0x40000
jb 0x41fd96
add eax, 0x10000
lea ecx, [ebp - 0x18c]
mov edx, dword [ebp - 0x44]
push ecx
lea ecx, [ebp - 0x190]
push ecx
push ebx
push 0x1e
mov cl, 1
push dword [ebp - 0x38]
push eax
lea eax, [ebp - 0x1e0]
push eax
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call fcn.004200ef
mov edi, eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
test edi, edi
jne 0x41ff96
cmp byte [ebp + 0x10], 0
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x1e0]
je 0x41fdfb
call fcn.0040e16a
inc esi
push 1
mov ecx, esi
pop edi
shl edi, cl
cmp edi, dword [ebp - 0x78]
jbe 0x41fc9b
jmp 0x41fe00
call fcn.0040e16a
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp + 0xc]
jb 0x41fc34
mov eax, dword [ebp - 0x12c]
mov esi, dword [ebp - 0x40]
add eax, esi
mov dl, 0x2d
push eax
mov ecx, ebx
call fcn.0041e837
cmp byte [ebp - 0xd], 0
je 0x41fe40
mov eax, dword [ebx]
push dword [0x4a04d8]
mov ecx, ebx
call dword [eax]
mov dl, 0x2d
mov ecx, ebx
push esi
call fcn.0041e837
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
cmp byte [ebp - 0xd], 0
je 0x41fea0
push dword [ebp - 0x12c]
mov edx, str.Avr:
mov ecx, ebx
call fcn.0041eaae
lea eax, [ebp - 0x178]
mov dl, byte [ebp + 0xb]
push eax
mov ecx, ebx
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
call fcn.00420cee
mov eax, dword [ebx]
mov ecx, ebx
push dword [0x4a04d8]
call dword [eax]
lea eax, [ebp - 0x158]
mov dl, byte [ebp + 0xb]
push eax
mov ecx, ebx
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
call fcn.00420cee
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
push dword [ebp - 0x12c]
mov edx, str.Tot:
mov ecx, ebx
call fcn.0041eaae
mov eax, dword [ebp - 0x150]
mov ecx, dword [ebp - 0x14c]
add eax, dword [ebp - 0x170]
mov dl, byte [ebp + 0xb]
adc ecx, dword [ebp - 0x16c]
mov dword [ebp - 0x1a8], eax
mov eax, dword [ebp - 0x148]
add eax, dword [ebp - 0x168]
mov dword [ebp - 0x1a4], ecx
mov ecx, dword [ebp - 0x144]
adc ecx, dword [ebp - 0x164]
mov dword [ebp - 0x1a0], eax
mov eax, dword [ebp - 0x140]
add eax, dword [ebp - 0x160]
mov dword [ebp - 0x19c], ecx
mov ecx, dword [ebp - 0x13c]
adc ecx, dword [ebp - 0x15c]
mov dword [ebp - 0x198], eax
mov eax, dword [ebp - 0x158]
add eax, dword [ebp - 0x178]
mov dword [ebp - 0x194], ecx
mov ecx, dword [ebp - 0x154]
adc ecx, dword [ebp - 0x174]
mov dword [ebp - 0x1b0], eax
lea eax, [ebp - 0x1b0]
push eax
mov dword [ebp - 0x1ac], ecx
push dword [ebp - 0x2c]
mov ecx, ebx
push dword [ebp - 0x30]
call fcn.00420cee
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jb 0x41f6d9
push dword [ebp - 0x94]
call fcn.00401c77
jmp 0x41f680
push dword [ebp - 0x94]
call fcn.00401c77
pop ecx
jmp 0x41ffd1
lea ecx, [ebp - 0x100]
call fcn.004087be
lea ecx, [ebp - 0x1e0]
mov byte [ebp - 4], 9
call fcn.0040e16a
push dword [ebp - 0x94]
call fcn.00401c77
pop ecx
mov ecx, dword [ebp - 0x38]
call fcn.00470400
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd4]
call fcn.0040e16a
mov eax, edi
jmp 0x41ffea
mov esi, 0x80070057
mov ecx, dword [ebp - 0x38]
call fcn.00470400
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd4]
call fcn.0040e16a
mov eax, esi
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0xc