Function at 0x40d1a0
Capabilities:
Read .ini file

Disassembly:
push ebp
lea ebp, [esp - 0x94]
sub esp, 0x94
push 0xffffffffffffffff
push 0x464645
mov eax, dword fs:[0]
push eax
sub esp, 0x10
mov eax, dword [0x484540]
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.0042f5de
mov ecx, eax
test ecx, ecx
je 0x40d5b7
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], 0
lea edi, [esi + 0x3b0]
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 0x40d314
mov esi, dword [ebp - 0x18]
push ebx
lea eax, [ebp - 0x10]
push str.BenchType_d
push eax
call fcn.00408490
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 0x40d358
cmp dword [edi], 1
jle 0x40d35d
mov eax, dword [ebp - 0x1c]
mov dword [edi], eax
push ebx
lea eax, [ebp - 0x10]
push str.BenchSize_d
push eax
call fcn.00408490
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 0x40d398
cmp eax, 0x2000
jle 0x40d3a5
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.00408490
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 0x40d3e8
cmp eax, 0x200
jle 0x40d3ee
mov eax, dword [ebp - 0x14]
mov dword [edi + 0x24], eax
push ebx
lea eax, [ebp - 0x10]
push str.BenchThreads_d
push eax
call fcn.00408490
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 0x40d430
cmp eax, 0x40
jle 0x40d436
mov eax, dword [ebp - 0x14]
mov dword [edi + 0x48], eax
inc ebx
add edi, 4
cmp ebx, 9
jl 0x40d311
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 + 0x424], eax
test eax, eax
js 0x40d46f
cmp eax, 1
jle 0x40d479
mov dword [edi + 0x424], 0
push ecx
mov dword [ebp - 0x18], esp
call fcn.0042f5de
mov ecx, eax
test ecx, ecx
je 0x40d5c1
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x18]
add eax, 0x10
mov dword [ecx], eax
push 0x472bd0
mov byte [ebp - 4], 1
call fcn.00402a30
test al, al
jne 0x40d4ba
mov ecx, dword [ebp - 0x18]
push 0
push 0x472bd0
call fcn.00402c10
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 + 0x420], eax
cmp eax, 5
sete cl
cmp eax, 0xa
je 0x40d50c
cmp eax, 0x14
je 0x40d50c
cmp eax, 0x1e
je 0x40d50c
cmp eax, 0x3c
je 0x40d50c
test ecx, ecx
jne 0x40d50c
mov dword [edi + 0x420], 5
push dword [edi + 0xd4]
push 5
push str.IntervalTime
push str.Setting
call ebx
xor ecx, ecx
mov dword [edi + 0x41c], eax
test eax, eax
sete cl
cmp eax, 1
je 0x40d56e
cmp eax, 3
je 0x40d56e
cmp eax, 5
je 0x40d56e
cmp eax, 0xa
je 0x40d56e
cmp eax, 0x1e
je 0x40d56e
cmp eax, 0x3c
je 0x40d56e
cmp eax, 0xb4
je 0x40d56e
cmp eax, 0x12c
je 0x40d56e
cmp eax, 0x258
je 0x40d56e
test ecx, ecx
jne 0x40d56e
mov dword [edi + 0x41c], 5
mov ecx, edi
call fcn.00415290
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x40d594
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.0044998e
lea esp, [ebp + 0x94]
pop ebp
ret
push 0x80004005
call fcn.00403110
push 0x80004005
call fcn.00403110
int3