Function at 0x40b050
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x4442f7
mov eax, dword fs:[0]
push eax
sub esp, 0x88
mov eax, dword [0x458640]
xor eax, esp
mov dword [esp + 0x84], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x458640]
xor eax, esp
push eax
lea eax, [esp + 0x9c]
mov dword fs:[0], eax
mov ebp, ecx
mov eax, 1
push 0x44796c
lea ecx, [esp + 0x38]
mov dword [esp + 0xa8], eax
mov dword [esp + 0x40], eax
xor edi, edi
call fcn.00405ce0
push 0x44796c
lea ecx, [esp + 0x30]
mov byte [esp + 0xa8], 2
call fcn.00405ce0
push 0x44796c
lea ecx, [esp + 0x34]
mov byte [esp + 0xa8], 3
call fcn.00405ce0
push 0x44796c
lea ecx, [esp + 0x28]
mov byte [esp + 0xa8], 4
call fcn.00405ce0
push 0x44796c
lea ecx, [esp + 0x24]
mov byte [esp + 0xa8], 5
call fcn.00405ce0
push 0x44796c
lea ecx, [esp + 0x20]
mov byte [esp + 0xa8], 6
call fcn.00405ce0
push 0x44796c
lea ecx, [esp + 0x18]
mov byte [esp + 0xa8], 7
call fcn.00405ce0
push 0x44796c
lea ecx, [esp + 0x1c]
mov byte [esp + 0xa8], 8
mov byte [esp + 0x3e], 1
mov byte [esp + 0x2f], 1
mov byte [esp + 0x3f], 1
call fcn.00405ce0
mov byte [esp + 0xa4], 9
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
add edi, 1
push edi
lea eax, [esp + 0x38]
push str.CheckPath_d
push eax
mov dword [esp + 0x5c], edi
call fcn.00404a50
push edi
lea ecx, [esp + 0x3c]
push str.CheckValue_d
push ecx
call fcn.00404a50
push edi
lea edx, [esp + 0x4c]
push str.VerifyValue_d
push edx
call fcn.00404a50
mov edx, dword [esp + 0x48]
mov eax, dword [edx - 8]
mov esi, dword [ebp + 0x124]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x100
add esp, 0x24
or eax, ecx
jge 0x40b1ce
push 0x100
lea ecx, [esp + 0x28]
call fcn.004012c0
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xac]
push esi
push 0x100
push edx
push 0x44796c
push eax
push ecx
call ebx
test eax, eax
je 0x40b1f7
mov edx, dword [esp + 0x24]
cmp dword [edx - 0xc], 0
je 0x40b205
cmp edi, 1
je 0x40b584
mov byte [esp + 0x3a], 0
mov edx, dword [esp + 0x20]
mov eax, dword [edx - 8]
mov esi, dword [ebp + 0x124]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x100
or eax, ecx
jge 0x40b235
push 0x100
lea ecx, [esp + 0x24]
call fcn.004012c0
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xac]
push esi
push 0x100
push edx
push 0x44796c
push eax
push ecx
call ebx
test eax, eax
je 0x40b25e
mov edx, dword [esp + 0x20]
cmp dword [edx - 0xc], 0
je 0x40b26c
cmp edi, 1
je 0x40b764
mov byte [esp + 0x2b], 0
mov edx, dword [esp + 0x1c]
mov eax, dword [edx - 8]
mov esi, dword [ebp + 0x124]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x100
or eax, ecx
jge 0x40b29c
push 0x100
lea ecx, [esp + 0x20]
call fcn.004012c0
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xac]
push esi
push 0x100
push edx
push 0x44796c
push eax
push ecx
call ebx
test eax, eax
mov dword [esp + 0x54], eax
je 0x40b2c9
mov edx, dword [esp + 0x1c]
cmp dword [edx - 0xc], 0
je 0x40b2da
cmp edi, 1
je 0x40b780
xor al, al
mov byte [esp + 0x3b], al
jmp 0x40b2de
mov al, byte [esp + 0x3b]
cmp byte [esp + 0x3a], 0
je 0x40b575
cmp byte [esp + 0x2b], 0
je 0x40b764
test al, al
je 0x40b780
mov eax, dword [esp + 0x24]
push 0x44796c
push eax
call fcn.0042ca95
add esp, 8
test eax, eax
setne al
test al, al
je 0x40b561
mov ecx, dword [esp + 0x20]
push 0x44796c
push ecx
call fcn.0042ca95
add esp, 8
test eax, eax
setne al
test al, al
je 0x40b561
call fcn.00411614
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x40b79c
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x24]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x4c], esp
mov esi, esp
push eax
mov byte [esp + 0xac], 0xa
call fcn.00401310
add esp, 4
lea ecx, [esp + 0x44]
add eax, 0x10
push ecx
mov ecx, ebp
mov dword [esi], eax
call fcn.00405f90
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x40]
push edx
push eax
lea ecx, [esp + 0x54]
push str._s_s
push ecx
mov byte [esp + 0xb4], 0xb
call fcn.00404a50
add esp, 0x10
call fcn.00411614
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x40b79c
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [esp + 0x48], esi
mov eax, dword [esi - 8]
mov edi, dword [ebp + 0x124]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 5
xor ebx, ebx
or eax, ecx
mov byte [esp + 0xa4], 0xc
jge 0x40b407
push 5
lea ecx, [esp + 0x4c]
call fcn.004012c0
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0xac]
push edi
push 5
push esi
push 0x44796c
push str.Redirect
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push str.TRUE
push esi
call fcn.0042ca95
add esp, 8
test eax, eax
jne 0x40b443
push eax
call fcn.00402780
add esp, 4
mov ebx, 1
mov edi, dword [esp + 0x4c]
push edi
mov ecx, ebp
call fcn.00402990
test eax, eax
je 0x40b7a6
mov edx, dword [esp + 0x1c]
push str.NULL
push edx
call fcn.0042ca95
add esp, 8
test eax, eax
jne 0x40b47a
cmp dword [esp + 0x3c], eax
setne al
mov dword [esp + 0x3c], eax
jmp 0x40b4e3
lea ecx, [esp + 0x58]
push ecx
push edi
mov ecx, ebp
call fcn.004057f0
test eax, eax
je 0x40b7a6
lea edx, [esp + 0x58]
push edx
lea ecx, [esp + 0x48]
call fcn.00405ce0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x44]
push eax
push ecx
mov ecx, ebp
call fcn.00402da0
test eax, eax
mov eax, dword [esp + 0x44]
jl 0x40b990
xor edx, edx
cmp dword [esp + 0x3c], edx
setne dl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov dword [esp + 0x3c], edx
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b4e3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp ebx, 1
jne 0x40b4f1
push ebx
call fcn.00402780
add esp, 4
lea eax, [esi - 0x10]
mov byte [esp + 0xa4], 0xb
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b515
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0xa4], 0xa
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b53d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [esp + 0xa4], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b561
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x54], 0
je 0x40b9b5
mov edi, dword [esp + 0x50]
jmp 0x40b15e
cmp byte [esp + 0x2b], 0
jne 0x40b584
test al, al
je 0x40b9b5
push 0xfa5
call fcn.004152df
test eax, eax
je 0x40b5a1
push 0xfa5
push eax
lea ecx, [esp + 0x20]
call fcn.004043c0
mov esi, dword [esp + 0xb0]
mov ecx, dword [esp + 0x18]
push esi
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.00404a50
add esp, 0xc
lea eax, [esp + 0x14]
push eax
lea ecx, [ebp + 0x13c]
call fcn.00415420
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0xa4], 8
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b5f3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0xa4], 7
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b61b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0xa4], 6
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b643
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0xa4], 5
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b66b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0xa4], 4
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b693
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0xa4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b6bb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0xa4], 2
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b6e3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
mov byte [esp + 0xa4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b70b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xac]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0xa4], 0
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b736
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esi - 0x10]
mov dword [esp + 0xa4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b75d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x40bb52
push 0xfa6
call fcn.004152df
test eax, eax
je 0x40b5a1
push 0xfa6
jmp 0x40b597
push 0xfa7
call fcn.004152df
test eax, eax
je 0x40b5a1
push 0xfa7
jmp 0x40b597
push 0x80004005
call fcn.00401000
lea eax, [esi - 0x10]
mov byte [esp + 0xa4], 0xb
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b7ca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0xa4], 0xa
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b7f2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [esp + 0xa4], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b816
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0xa4], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b83e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0xa4], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b866
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0xa4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b88e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0xa4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b8b6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0xa4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b8de
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0xa4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b906
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0xa4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b92e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0xa4], 1
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b956
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xac]
add eax, 0xfffffff0
mov byte [esp + 0xa4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b981
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xb0]
add eax, 0xfffffff0
jmp 0x40b739
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b7a6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x40b7a6
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0xa4], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b9dd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0xa4], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ba05
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0xa4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ba2d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0xa4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ba55
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0xa4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ba7d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0xa4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40baa5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0xa4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40bacd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
mov byte [esp + 0xa4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40baf5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xac]
add eax, 0xfffffff0
mov byte [esp + 0xa4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40bb20
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xb0]
add eax, 0xfffffff0
mov dword [esp + 0xa4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40bb4e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x9c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x84]
xor ecx, esp
call fcn.0042cf8a
add esp, 0x94
ret 8