Function at 0x40dbd0
Capabilities:
Read .ini file

Disassembly:
push ebp
lea ebp, [esp - 0x94]
sub esp, 0x94
push 0xffffffffffffffff
push 0x466075
mov eax, dword fs:[0]
push eax
sub esp, 0x10
mov eax, dword [0x486540]
xor eax, ebp
mov dword [ebp + 0x90], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x18], esi
call fcn.00430fae
mov ecx, eax
test ecx, ecx
je 0x40dfe7
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], 0
lea edi, [esi + 0x440]
mov dword [ebp + 0x48], 0
xor ebx, ebx
mov dword [ebp + 0x4c], 0
mov dword [ebp + 0x50], 1
mov dword [ebp + 0x54], 1
mov dword [ebp + 0x58], 0
mov dword [ebp + 0x5c], 1
mov dword [ebp + 0x60], 0
mov dword [ebp + 0x64], 1
mov dword [ebp + 0x68], 0
mov dword [ebp + 0x6c], 0x400
mov dword [ebp + 0x70], 0x400
mov dword [ebp + 0x74], 4
mov dword [ebp + 0x78], 4
mov dword [ebp + 0x7c], 0x400
mov dword [ebp + 0x80], 4
mov dword [ebp + 0x84], 0x400
mov dword [ebp + 0x88], 4
mov dword [ebp + 0x8c], 0x400
mov dword [ebp + 0x24], 8
mov dword [ebp + 0x28], 1
mov dword [ebp + 0x2c], 0x20
mov dword [ebp + 0x30], 1
mov dword [ebp + 0x34], 8
mov dword [ebp + 0x38], 0x20
mov dword [ebp + 0x3c], 1
mov dword [ebp + 0x40], 1
mov dword [ebp + 0x44], 8
mov dword [ebp], 1
mov dword [ebp + 4], 1
mov dword [ebp + 8], 1
mov dword [ebp + 0xc], 1
mov dword [ebp + 0x10], 1
mov dword [ebp + 0x14], 1
mov dword [ebp + 0x18], 1
mov dword [ebp + 0x1c], 1
mov dword [ebp + 0x20], 1
jmp 0x40dd44
mov esi, dword [ebp - 0x18]
push ebx
lea eax, [ebp - 0x10]
push str.BenchType_d
push eax
call fcn.00408310
add esp, 0xc
lea eax, [ebx*4]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + eax + 0x48]
mov dword [ebp - 0x1c], eax
push dword [esi + 0xd4]
push eax
push dword [ebp - 0x10]
push str.Setting
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [edi - 0x24], eax
test eax, eax
js 0x40dd88
cmp dword [edi], 1
jle 0x40dd8d
mov eax, dword [ebp - 0x1c]
mov dword [edi], eax
push ebx
lea eax, [ebp - 0x10]
push str.BenchSize_d
push eax
call fcn.00408310
mov eax, dword [ebp - 0x14]
add esp, 0xc
push dword [esi + 0xd4]
mov eax, dword [ebp + eax + 0x6c]
push eax
push dword [ebp - 0x10]
push str.Setting
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [edi], eax
test eax, eax
jle 0x40ddc8
cmp eax, 0x2000
jle 0x40ddd5
lea ecx, [ebx*4]
mov eax, dword [ebp + ecx + 0x6c]
mov dword [edi], eax
push ebx
lea eax, [ebp - 0x10]
push str.BenchQueues_d
push eax
call fcn.00408310
add esp, 0xc
lea eax, [ebx*4]
mov eax, dword [ebp + eax + 0x24]
mov dword [ebp - 0x14], eax
push dword [esi + 0xd4]
push eax
push dword [ebp - 0x10]
push str.Setting
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [edi + 0x24], eax
test eax, eax
jle 0x40de18
cmp eax, 0x200
jle 0x40de1e
mov eax, dword [ebp - 0x14]
mov dword [edi + 0x24], eax
push ebx
lea eax, [ebp - 0x10]
push str.BenchThreads_d
push eax
call fcn.00408310
add esp, 0xc
lea eax, [ebx*4]
mov eax, dword [ebp + eax]
mov dword [ebp - 0x14], eax
push dword [esi + 0xd4]
mov esi, dword [ebp - 0x10]
push eax
push esi
push str.Setting
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [edi + 0x48], eax
test eax, eax
jle 0x40de60
cmp eax, 0x40
jle 0x40de66
mov eax, dword [ebp - 0x14]
mov dword [edi + 0x48], eax
inc ebx
add edi, 4
cmp ebx, 9
jl 0x40dd41
mov edi, dword [ebp - 0x18]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push dword [edi + 0xd4]
push 0
push str.TestData
push str.Setting
call ebx
mov dword [edi + 0x4b4], eax
test eax, eax
js 0x40de9f
cmp eax, 1
jle 0x40dea9
mov dword [edi + 0x4b4], 0
push ecx
mov dword [ebp - 0x18], esp
call fcn.00430fae
mov ecx, eax
test ecx, ecx
je 0x40dff1
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x18]
add eax, 0x10
mov dword [ecx], eax
push 0x4733b8
mov byte [ebp - 4], 1
call fcn.00402660
test al, al
jne 0x40deea
mov ecx, dword [ebp - 0x18]
push 0
push 0x4733b8
call fcn.00402840
mov byte [ebp - 4], 0
mov ecx, edi
mov eax, dword [edi]
call dword [eax + 0x19c]
push dword [edi + 0xd4]
push 5
push str.MeasureTime
push str.Setting
call ebx
xor ecx, ecx
mov dword [edi + 0x4b0], eax
cmp eax, 5
sete cl
cmp eax, 0xa
je 0x40df3c
cmp eax, 0x14
je 0x40df3c
cmp eax, 0x1e
je 0x40df3c
cmp eax, 0x3c
je 0x40df3c
test ecx, ecx
jne 0x40df3c
mov dword [edi + 0x4b0], 5
push dword [edi + 0xd4]
push 5
push str.IntervalTime
push str.Setting
call ebx
xor ecx, ecx
mov dword [edi + 0x4ac], eax
test eax, eax
sete cl
cmp eax, 1
je 0x40df9e
cmp eax, 3
je 0x40df9e
cmp eax, 5
je 0x40df9e
cmp eax, 0xa
je 0x40df9e
cmp eax, 0x1e
je 0x40df9e
cmp eax, 0x3c
je 0x40df9e
cmp eax, 0xb4
je 0x40df9e
cmp eax, 0x12c
je 0x40df9e
cmp eax, 0x258
je 0x40df9e
test ecx, ecx
jne 0x40df9e
mov dword [edi + 0x4ac], 5
mov ecx, edi
call fcn.004168c0
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x40dfc4
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x90]
xor ecx, ebp
call fcn.0044b35e
lea esp, [ebp + 0x94]
pop ebp
ret
push 0x80004005
call fcn.00402d40
push 0x80004005
call fcn.00402d40
int3