Function at 0x1003e820
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100b107d
mov eax, dword fs:[0]
push eax
mov eax, 0x50c4
call fcn.100785e0
mov eax, dword [0x100e2524]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x5068], esi
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x5010]
mov edi, dword [ebp + 0xc]
push 0x5000
push 0
mov dword [ebp - 0x5088], ebx
push eax
mov dword [ebp - 0x5084], ebx
mov dword [ebp - 0x5060], 0
call fcn.100832e0
add esp, 0xc
xor eax, eax
mov dword [ebp - 4], 1
mov word [ebp - 0x5040], ax
lea ecx, [ebp - 0x5040]
mov eax, dword [edi + 0x10]
add eax, 4
mov dword [ebp - 0x5030], 0
push eax
mov dword [ebp - 0x502c], 7
mov dword [ebp - 0x5060], 4
call fcn.100411c0
push 4
push str.key_
lea ecx, [ebp - 0x5040]
call fcn.10041000
cmp dword [edi + 0x14], 8
mov eax, edi
jb 0x1003e8e8
mov eax, dword [edi]
push dword [edi + 0x10]
lea ecx, [ebp - 0x5040]
push eax
call fcn.10041000
push dword [esi]
cmp dword [ebp - 0x502c], 8
lea ecx, [ebp - 0x5010]
push 0x2800
push ecx
lea eax, [ebp - 0x5040]
cmovae eax, dword [ebp - 0x5040]
push 0x100ba088
push eax
push str.Benchmark
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov edx, dword [ebp - 0x502c]
mov dword [ebp - 0x5060], 0
mov byte [ebp - 4], 0
cmp edx, 8
jb 0x1003e978
mov ecx, dword [ebp - 0x5040]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1003e96e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f0d6
push edx
push ecx
call fcn.1007819a
add esp, 8
mov dword [ebp - 0x5074], 0
mov dword [ebp - 0x5070], 0
mov dword [ebp - 0x506c], 0
mov dword [ebp - 4], 2
call fcn.1000b090
mov ecx, eax
test ecx, ecx
je 0x1003f0db
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x505c], eax
mov eax, 0x100bcc34
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x505c]
test eax, 0xffff0000
jne 0x1003e9db
movzx eax, ax
push eax
call fcn.1000bf50
jmp 0x1003e9e7
push 1
push 0x100bcc34
call fcn.10017b00
mov byte [ebp - 4], 4
call fcn.1000b090
mov ecx, eax
test ecx, ecx
je 0x1003f0e5
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x5064], eax
lea eax, [ebp - 0x5010]
mov byte [ebp - 4], 5
test eax, 0xffff0000
jne 0x1003ea2a
movzx eax, ax
lea ecx, [ebp - 0x5064]
push eax
call fcn.1000bf50
jmp 0x1003ea55
lea ecx, [ebp - 0x5010]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1003ea33
sub ecx, edx
lea eax, [ebp - 0x5010]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x5064]
call fcn.10017b00
lea eax, [ebp - 0x5074]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x505c]
push eax
lea eax, [ebp - 0x5064]
push eax
call fcn.100552e0
mov edx, dword [ebp - 0x5064]
add esp, 0xc
mov byte [ebp - 4], 4
add edx, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1003ea98
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x505c]
or eax, 0xffffffff
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1003eaba
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x5070]
mov ecx, ebx
sub eax, dword [ebp - 0x5074]
sar eax, 2
push 0
mov dword [ebp - 0x5080], eax
call fcn.10064db0
xor esi, esi
mov ebx, 1
mov dword [ebp - 0x5060], ebx
cmp dword [ebp - 0x5080], esi
jbe 0x1003f0a7
call fcn.1000b090
mov ecx, eax
test ecx, ecx
je 0x1003f0db
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x505c], eax
mov eax, 0x100bca5c
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x505c]
test eax, 0xffff0000
jne 0x1003eb2f
movzx eax, ax
push eax
call fcn.1000bf50
jmp 0x1003eb3b
push 4
push 0x100bca5c
call fcn.10017b00
mov eax, dword [ebp - 0x5074]
lea ecx, [ebp - 0x505c]
push ecx
mov ecx, dword [ebp - 0x5068]
mov byte [ebp - 4], 8
lea eax, [eax + esi*4]
push eax
lea eax, [ebp - 0x507c]
push eax
call fcn.1003cea0
mov edx, dword [ebp - 0x505c]
or eax, 0xffffffff
mov byte [ebp - 4], 0xa
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1003eb84
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.1000b090
mov ecx, eax
test ecx, ecx
je 0x1003f0db
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x505c], eax
mov eax, str.score
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x505c]
test eax, 0xffff0000
jne 0x1003ebc2
movzx eax, ax
push eax
call fcn.1000bf50
jmp 0x1003ebce
push 5
push str.score
call fcn.10017b00
mov eax, dword [ebp - 0x5074]
lea ecx, [ebp - 0x505c]
push ecx
mov ecx, dword [ebp - 0x5068]
mov byte [ebp - 4], 0xc
lea eax, [eax + esi*4]
push eax
lea eax, [ebp - 0x5078]
push eax
call fcn.1003cea0
mov edx, dword [ebp - 0x505c]
or eax, 0xffffffff
mov byte [ebp - 4], 0xe
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1003ec17
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0xfde9
push dword [ebp - 0x5078]
lea eax, [ebp - 0x5040]
push eax
call fcn.1005fa30
add esp, 0xc
push 0
lea ecx, [ebp - 0x50b8]
mov byte [ebp - 4], 0xf
call fcn.10064db0
lea ecx, [ebp - 0x50a0]
mov byte [ebp - 4], 0x10
call fcn.10067d40
cmp dword [ebp - 0x5030], 0
mov byte [ebp - 4], 0x11
je 0x1003efd5
lea eax, [ebp - 0x5040]
push eax
lea ecx, [ebp - 0x50a0]
call fcn.10068a80
test al, al
je 0x1003eccc
push 0
push 0x100b967b
lea ecx, [ebp - 0x5028]
mov dword [ebp - 0x5018], 0
mov dword [ebp - 0x5014], 0xf
mov byte [ebp - 0x5028], 0
call fcn.1000f000
lea eax, [ebp - 0x5028]
mov byte [ebp - 4], 0x12
or ebx, 2
lea ecx, [ebp - 0x50a0]
push eax
mov dword [ebp - 0x5060], ebx
call fcn.10068a40
test al, al
je 0x1003eccc
mov bl, 1
jmp 0x1003ecce
xor bl, bl
mov eax, dword [ebp - 0x5060]
mov dword [ebp - 4], 0x11
test al, 2
je 0x1003ed22
mov edx, dword [ebp - 0x5014]
and eax, 0xfffffffd
mov dword [ebp - 0x5060], eax
cmp edx, 0x10
jb 0x1003ed22
mov ecx, dword [ebp - 0x5028]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1003ed18
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f0d6
push edx
push ecx
call fcn.1007819a
add esp, 8
test bl, bl
je 0x1003ede6
cmp dword [edi + 0x14], 8
mov eax, edi
jb 0x1003ed34
mov eax, dword [edi]
test eax, eax
je 0x1003f0db
push eax
push dword [ebp - 0x507c]
call fcn.100925f3
add esp, 8
test eax, eax
jne 0x1003ede6
push eax
push 0x100b967b
lea ecx, [ebp - 0x5028]
mov dword [ebp - 0x5018], eax
mov dword [ebp - 0x5014], 0xf
mov byte [ebp - 0x5028], al
call fcn.1000f000
lea eax, [ebp - 0x5028]
mov byte [ebp - 4], 0x13
push eax
lea ecx, [ebp - 0x50a0]
call fcn.100685b0
push eax
push 0x100bb8ec
lea ecx, [ebp - 0x50b8]
call fcn.100656d0
mov ecx, eax
call fcn.10065200
mov edx, dword [ebp - 0x5014]
mov byte [ebp - 4], 0x11
cmp edx, 0x10
jb 0x1003ede6
mov ecx, dword [ebp - 0x5028]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1003eddc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f0d6
push edx
push ecx
call fcn.1007819a
add esp, 8
call fcn.1000b090
mov ecx, eax
test ecx, ecx
je 0x1003f0db
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x505c], eax
mov eax, str.benchenv
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x505c]
test eax, 0xffff0000
jne 0x1003ee24
movzx eax, ax
push eax
call fcn.1000bf50
jmp 0x1003ee30
push 8
push str.benchenv
call fcn.10017b00
mov eax, dword [ebp - 0x5074]
lea ecx, [ebp - 0x505c]
push ecx
mov ecx, dword [ebp - 0x5068]
mov byte [ebp - 4], 0x15
lea eax, [eax + esi*4]
push eax
lea eax, [ebp - 0x5064]
push eax
call fcn.1003cea0
mov edx, dword [ebp - 0x505c]
or eax, 0xffffffff
mov byte [ebp - 4], 0x17
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1003ee79
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x5064]
cmp dword [eax - 0xc], 0
je 0x1003efb3
push 0xfde9
push eax
lea eax, [ebp - 0x5058]
push eax
call fcn.1005fa30
add esp, 0xc
lea ecx, [ebp - 0x50d0]
mov byte [ebp - 4], 0x18
call fcn.10067d40
lea eax, [ebp - 0x5058]
mov byte [ebp - 4], 0x19
push eax
lea ecx, [ebp - 0x50d0]
call fcn.10068a80
test al, al
je 0x1003ef64
push 0
push 0x100b967b
lea ecx, [ebp - 0x5028]
mov dword [ebp - 0x5018], 0
mov dword [ebp - 0x5014], 0xf
mov byte [ebp - 0x5028], 0
call fcn.1000f000
lea eax, [ebp - 0x5028]
mov byte [ebp - 4], 0x1a
push eax
lea ecx, [ebp - 0x50d0]
call fcn.100685b0
push eax
push 0x100bb7ac
lea ecx, [ebp - 0x50b8]
call fcn.100656d0
mov ecx, eax
call fcn.10065200
mov edx, dword [ebp - 0x5014]
mov byte [ebp - 4], 0x19
cmp edx, 0x10
jb 0x1003ef64
mov ecx, dword [ebp - 0x5028]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1003ef5a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f0d6
push edx
push ecx
call fcn.1007819a
add esp, 8
lea ecx, [ebp - 0x50d0]
call fcn.10065140
mov edx, dword [ebp - 0x5044]
mov byte [ebp - 4], 0x17
cmp edx, 0x10
jb 0x1003efad
mov ecx, dword [ebp - 0x5058]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1003efa3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f0d6
push edx
push ecx
call fcn.1007819a
add esp, 8
mov eax, dword [ebp - 0x5064]
lea edx, [eax - 0x10]
mov byte [ebp - 4], 0x11
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1003efcf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, dword [ebp - 0x5060]
mov ecx, dword [ebp - 0x5084]
lea eax, [ebp - 0x50b8]
push eax
call fcn.10065fc0
lea ecx, [ebp - 0x50a0]
call fcn.10065140
lea ecx, [ebp - 0x50b8]
call fcn.10065140
mov edx, dword [ebp - 0x502c]
mov byte [ebp - 4], 0xe
cmp edx, 0x10
jb 0x1003f03b
mov ecx, dword [ebp - 0x5040]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1003f031
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f0d6
push edx
push ecx
call fcn.1007819a
add esp, 8
mov edx, dword [ebp - 0x5078]
or eax, 0xffffffff
mov dword [ebp - 0x5030], 0
add edx, 0xfffffff0
mov dword [ebp - 0x502c], 0xf
mov byte [ebp - 0x5040], 0
mov byte [ebp - 4], 0xa
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1003f078
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x507c]
or eax, 0xffffffff
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1003f09a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
inc esi
cmp esi, dword [ebp - 0x5080]
jb 0x1003eaf1
lea ecx, [ebp - 0x5074]
call fcn.1001bd10
mov eax, dword [ebp - 0x5084]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1007850b
mov esp, ebp
pop ebp
ret 8
call fcn.10086209
push 0x80004005
call fcn.1000aa20
push 0x80004005
call fcn.1000aa20
int3