Function at 0x40e5c0
Capabilities:
Delete file

Disassembly:
push 0xffffffffffffffff
push 0x43bc13
mov eax, dword fs:[0]
push eax
sub esp, 0x180
mov eax, dword [0x44aba4]
xor eax, esp
mov dword [esp + 0x178], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x44aba4]
xor eax, esp
push eax
lea eax, [esp + 0x194]
mov dword fs:[0], eax
mov eax, dword [esp + 0x1a4]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x1a8]
mov dword [esp + 0x58], eax
mov eax, dword [eax]
mov dword [esp + 0x24], ecx
mov ecx, dword [eax - 0xc]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x1ac]
xor ebx, ebx
cmp ecx, ebx
mov dword [esp + 0x48], edx
je 0x40e7b0
add eax, 0xfffffff0
push eax
call fcn.004156a0
lea ecx, [eax + 0x10]
add esp, 4
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x19c], ebx
mov edx, dword [ecx - 0xc]
lea eax, [edx - 1]
cmp eax, ebx
jl 0x40f9fa
cmp eax, edx
jg 0x40f9fa
mov al, byte [eax + ecx]
cmp al, 0x5c
je 0x40e67a
push 1
push 0x4429f0
lea ecx, [esp + 0x24]
call fcn.004149f0
push 0x11
push str.UpdatePackage.ini
lea ecx, [esp + 0x24]
call fcn.004149f0
mov ebp, dword [esp + 0x1c]
cmp dword [ebp - 4], 1
jle 0x40e6a5
mov eax, dword [ebp - 0xc]
push eax
lea ecx, [esp + 0x20]
call fcn.0040db90
mov ebp, dword [esp + 0x1c]
mov edi, 0xf
mov eax, ebp
mov dword [esp + 0xa0], edi
mov dword [esp + 0x9c], ebx
mov byte [esp + 0x8c], 0
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x40e6c5
sub eax, edx
push eax
push ebp
lea ecx, [esp + 0x90]
call fcn.004026e0
lea ecx, [esp + 0x88]
push ecx
lea edx, [esp + 0x108]
push edx
mov byte [esp + 0x1a4], 1
call fcn.00403e80
mov esi, 0x10
mov byte [esp + 0x19c], 3
cmp dword [esp + 0xa0], esi
jb 0x40e721
mov eax, dword [esp + 0x8c]
push eax
call fcn.00415b75
add esp, 4
cmp ebp, ebx
mov dword [esp + 0xa0], edi
mov dword [esp + 0x9c], ebx
mov byte [esp + 0x8c], 0
jne 0x40e73f
xor eax, eax
jmp 0x40e755
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x40e744
sub eax, edx
js 0x40f9fa
cmp eax, dword [ebp - 8]
jg 0x40f9fa
lea ecx, [esp + 0x104]
mov dword [ebp - 0xc], eax
push ecx
mov byte [eax + ebp], 0
call fcn.00403f90
test al, al
jne 0x40e7da
lea esi, [esp + 0x104]
mov byte [esp + 0x19c], al
call fcn.00403f40
lea eax, [ebp - 0x10]
mov dword [esp + 0x19c], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40e7b0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
mov ecx, dword [esp + 0x194]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x178]
xor ecx, esp
call fcn.004200b3
add esp, 0x18c
ret
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx]
sub eax, esi
push eax
call fcn.004156a0
lea edi, [eax + 0x10]
add esp, 4
mov dword [esp + 0x2c], edi
mov byte [esp + 0x19c], 4
mov ecx, dword [edi - 0xc]
lea eax, [ecx - 1]
cmp eax, ebx
jl 0x40f9fa
cmp eax, ecx
jg 0x40f9fa
cmp byte [eax + edi], 0x5c
je 0x40e828
push 0x4429f0
lea ecx, [esp + 0x30]
call fcn.00413230
mov edi, dword [esp + 0x2c]
push 0xa
push str.DeleteFile
lea ecx, [esp + 0x6c]
mov dword [esp + 0x84], 0xf
mov dword [esp + 0x80], 0
mov byte [esp + 0x70], 0
call fcn.004026e0
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0x108]
mov byte [esp + 0x1a0], 5
call fcn.00401630
test al, al
sete bl
mov byte [esp + 0x19c], 4
cmp dword [esp + 0x7c], esi
jb 0x40e88c
mov eax, dword [esp + 0x68]
push eax
call fcn.00415b75
add esp, 4
test bl, bl
je 0x40e8e8
lea eax, [edi - 0x10]
mov byte [esp + 0x19c], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40e8b4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x104]
mov byte [esp + 0x19c], 0
call fcn.00403f40
lea eax, [ebp - 0x10]
mov dword [esp + 0x19c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x40e7a4
push 0x440d84
lea ecx, [esp + 0xd0]
call fcn.004027b0
lea ecx, [esp + 0xcc]
push ecx
push str.FileCount
push str.DeleteFile
lea edx, [esp + 0x110]
push edx
mov byte [esp + 0x1ac], 6
call fcn.00401510
cmp dword [esp + 0xe4], esi
mov eax, dword [esp + 0xd0]
jae 0x40e937
lea eax, [esp + 0xd0]
push eax
call fcn.00423262
add esp, 4
push 0x440d84
lea ecx, [esp + 0x44]
mov ebp, eax
call fcn.0040de10
push 0x440d84
lea ecx, [esp + 0xb4]
mov byte [esp + 0x1a0], 7
call fcn.004027b0
push 0x440d84
lea ecx, [esp + 0x38]
mov byte [esp + 0x1a0], 8
call fcn.0040de10
xor edi, edi
test ebp, ebp
mov byte [esp + 0x19c], 9
jle 0x40ea2e
push edi
push str.File
lea eax, [esp + 0x48]
push str._s_d
push eax
call fcn.00415760
mov edx, dword [esp + 0x50]
add esp, 0x10
lea ecx, [esp + 0xb0]
push ecx
push edx
push str.DeleteFile
lea eax, [esp + 0x110]
push eax
call fcn.00401510
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x38]
call fcn.00415620
cmp dword [esp + 0xc8], 0x10
jb 0x40e9ef
mov edx, dword [esp + 0xb4]
test edx, edx
jne 0x40e9f6
xor eax, eax
jmp 0x40ea0b
lea edx, [esp + 0xb4]
mov eax, edx
lea ebx, [eax + 1]
jmp 0x40ea00
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x40ea00
sub eax, ebx
push eax
push edx
lea ecx, [esp + 0x3c]
call fcn.004149f0
mov esi, dword [esp + 0x20]
lea ebx, [esp + 0x34]
call fcn.00413680
add edi, 1
cmp edi, ebp
jl 0x40e991
push 9
mov esi, 0xf
xor edi, edi
push str.DeleteDir
lea ecx, [esp + 0x6c]
mov dword [esp + 0x84], esi
mov dword [esp + 0x80], edi
mov byte [esp + 0x70], 0
call fcn.004026e0
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0x108]
mov byte [esp + 0x1a0], 0xa
call fcn.00401630
test al, al
mov ebp, 0x10
sete bl
mov byte [esp + 0x19c], 9
cmp dword [esp + 0x7c], ebp
jb 0x40ea96
mov eax, dword [esp + 0x68]
push eax
call fcn.00415b75
add esp, 4
test bl, bl
je 0x40ebac
mov byte [esp + 0x19c], 8
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40eac6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0xc8], ebp
jb 0x40eadf
mov ecx, dword [esp + 0xb4]
push ecx
call fcn.00415b75
add esp, 4
mov byte [esp + 0x19c], 6
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov dword [esp + 0xc8], esi
mov dword [esp + 0xc4], edi
mov byte [esp + 0xb4], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40eb1d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0xe4], ebp
jb 0x40eb36
mov ecx, dword [esp + 0xd0]
push ecx
call fcn.00415b75
add esp, 4
mov byte [esp + 0x19c], 3
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov dword [esp + 0xe4], esi
mov dword [esp + 0xe0], edi
mov byte [esp + 0xd0], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40eb74
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x104]
mov byte [esp + 0x19c], 0
call fcn.00403f40
mov dword [esp + 0x19c], 0xffffffff
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x40e7a4
push edi
push 0x440d84
lea ecx, [esp + 0xf0]
mov dword [esp + 0x108], esi
mov dword [esp + 0x104], edi
mov byte [esp + 0xf4], 0
call fcn.004026e0
lea ecx, [esp + 0xe8]
push ecx
push str.DirCount
push str.DeleteDir
lea edx, [esp + 0x110]
push edx
mov byte [esp + 0x1ac], 0xb
call fcn.00401510
cmp dword [esp + 0x100], ebp
mov eax, dword [esp + 0xec]
jae 0x40ec12
lea eax, [esp + 0xec]
push eax
call fcn.00423262
add esp, 4
mov esi, eax
push 0x440d84
lea ecx, [esp + 0x50]
mov dword [esp + 0x24], esi
call fcn.0040de10
push 0x440d84
lea ecx, [esp + 0x34]
mov byte [esp + 0x1a0], 0xc
call fcn.0040de10
cmp esi, edi
mov byte [esp + 0x19c], 0xd
mov dword [esp + 0x44], edi
jle 0x40eda3
mov eax, dword [esp + 0x44]
push eax
push 0x442ea8
lea ecx, [esp + 0x54]
push str._s_d
push ecx
call fcn.00415760
mov eax, dword [esp + 0x5c]
add esp, 0x10
lea edx, [esp + 0xb0]
push edx
push eax
push str.DeleteDir
lea ecx, [esp + 0x110]
push ecx
call fcn.00401510
lea edx, [esp + 0x2c]
push edx
lea ecx, [esp + 0x34]
call fcn.00415620
cmp dword [esp + 0xc8], 0x10
jb 0x40ecbb
mov ecx, dword [esp + 0xb4]
test ecx, ecx
jne 0x40ecc2
xor eax, eax
jmp 0x40ecd2
lea ecx, [esp + 0xb4]
mov eax, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40ecc7
sub eax, esi
push eax
push ecx
lea ecx, [esp + 0x38]
call fcn.004149f0
lea eax, [esp + 0x30]
push eax
call fcn.00412820
mov esi, eax
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
add esp, 4
push eax
mov dword [esp + 0x84], esi
call fcn.004156a0
add eax, 0x10
add esp, 4
mov dword [esp + 0x84], eax
mov byte [esp + 0x19c], 0xe
mov dword [esp + 0x38], esi
lea esi, [eax - 0x10]
push esi
call fcn.004156a0
lea ebp, [eax + 0x10]
add esp, 4
mov dword [esp + 0x3c], ebp
lea ecx, [esp + 0x38]
mov byte [esp + 0x19c], 0xf
mov ebx, dword [esp + 0x18]
push ecx
lea edi, [esp + 0xa8]
call fcn.004136f0
lea eax, [ebp - 0x10]
mov byte [esp + 0x19c], 0xe
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40ed6d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x19c], 0xd
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ed8e
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov eax, dword [esp + 0x44]
add eax, 1
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x44], eax
jl 0x40ec59
push 9
mov esi, 0xf
xor ebp, ebp
push str.CloseStep
lea ecx, [esp + 0x6c]
mov dword [esp + 0x84], esi
mov dword [esp + 0x80], ebp
mov byte [esp + 0x70], 0
call fcn.004026e0
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x108]
mov byte [esp + 0x1a0], 0x10
call fcn.00401630
test al, al
mov edi, 0x10
sete bl
mov byte [esp + 0x19c], 0xd
cmp dword [esp + 0x7c], edi
jb 0x40ee0b
mov ecx, dword [esp + 0x68]
push ecx
call fcn.00415b75
add esp, 4
test bl, bl
je 0x40f003
mov byte [esp + 0x19c], 0xc
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
or ecx, 0xffffffff
lea edx, [eax + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40ee3b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x19c], 0xb
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ee63
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x100], edi
jb 0x40ee7c
mov ecx, dword [esp + 0xec]
push ecx
call fcn.00415b75
add esp, 4
mov byte [esp + 0x19c], 8
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
or ecx, 0xffffffff
lea edx, [eax + 0xc]
mov byte [esp + 0xec], 0
mov dword [esp + 0xfc], ebp
mov dword [esp + 0x100], esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40eeba
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0xc8], edi
jb 0x40eed3
mov ecx, dword [esp + 0xb4]
push ecx
call fcn.00415b75
add esp, 4
mov byte [esp + 0x19c], 6
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
or ecx, 0xffffffff
lea edx, [eax + 0xc]
mov byte [esp + 0xb4], 0
mov dword [esp + 0xc4], ebp
mov dword [esp + 0xc8], esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40ef11
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0xe4], edi
jb 0x40ef2a
mov ecx, dword [esp + 0xd0]
push ecx
call fcn.00415b75
add esp, 4
mov byte [esp + 0x19c], 3
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
or ecx, 0xffffffff
lea edx, [eax + 0xc]
mov byte [esp + 0xd0], 0
mov dword [esp + 0xe0], ebp
mov dword [esp + 0xe4], esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40ef68
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x19c], 0
cmp byte [esp + 0x133], 0
je 0x40efa3
cmp dword [esp + 0x148], ebp
je 0x40efa3
cmp dword [esp + 0x11c], edi
mov eax, dword [esp + 0x108]
jae 0x40ef9a
lea eax, [esp + 0x108]
push eax
call fcn.00421de2
add esp, 4
cmp dword [esp + 0x14c], edi
jb 0x40efbc
mov ecx, dword [esp + 0x138]
push ecx
call fcn.00415b75
add esp, 4
lea edx, [esp + 0x104]
push edx
mov dword [esp + 0x150], esi
mov dword [esp + 0x14c], ebp
mov byte [esp + 0x13c], 0
call fcn.00401020
mov dword [esp + 0x19c], 0xffffffff
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x40e7a4
push ebp
push 0x440d84
lea ecx, [esp + 0x15c]
mov dword [esp + 0x174], esi
mov dword [esp + 0x170], ebp
mov byte [esp + 0x160], 0
call fcn.004026e0
lea ecx, [esp + 0x154]
push ecx
push str.CloseCount
push str.CloseStep
lea edx, [esp + 0x110]
push edx
mov byte [esp + 0x1ac], 0x11
call fcn.00401510
cmp dword [esp + 0x16c], edi
mov eax, dword [esp + 0x158]
jae 0x40f069
lea eax, [esp + 0x158]
push eax
call fcn.00423262
add esp, 4
mov edi, eax
push 0x440d84
lea ecx, [esp + 0x54]
mov dword [esp + 0x24], edi
call fcn.0040de10
push 0x440d84
lea ecx, [esp + 0x58]
mov byte [esp + 0x1a0], 0x12
call fcn.0040de10
mov byte [esp + 0x19c], 0x13
call fcn.00416e24
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f0be
push 0x80004005
call fcn.004080e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x3c], eax
push ebp
mov byte [esp + 0x1a0], 0x14
push 0x440d84
lea ecx, [esp + 0x44]
mov dword [esp + 0x40], ebp
call fcn.0040dd00
xor ebx, ebx
cmp edi, ebp
jle 0x40f292
mov edi, dword [esp + 0x24]
push ebx
push str.Step
lea ecx, [esp + 0x58]
push str._s_d
push ecx
call fcn.00415760
mov eax, dword [esp + 0x60]
add esp, 0x10
lea edx, [esp + 0xb0]
push edx
push eax
push str.CloseStep
lea ecx, [esp + 0x110]
push ecx
call fcn.00401510
cmp dword [esp + 0xc8], 0x10
jb 0x40f147
mov edx, dword [esp + 0xb4]
cmp edx, ebp
jne 0x40f14e
xor eax, eax
jmp 0x40f15e
lea edx, [esp + 0xb4]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x40f153
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x5c]
call fcn.0040dd00
lea edx, [esp + 0x38]
push edx
push ebp
lea ecx, [esp + 0x5c]
call fcn.0040fa10
mov eax, dword [esp + 0x40]
add esp, 8
cmp eax, 2
je 0x40f18d
cmp eax, 4
jne 0x40f211
mov esi, dword [esp + 0x3c]
cmp dword [esi - 0xc], ebp
jl 0x40f1af
push 0x442ecc
push esi
call fcn.00422f57
add esp, 8
cmp eax, ebp
je 0x40f1af
sub eax, esi
cmp eax, 0xffffffff
jne 0x40f211
push 0x440d84
lea ecx, [esp + 0x1c]
call fcn.0040de10
mov ecx, dword [esp + 0x58]
lea eax, [esp + 0x18]
push eax
push ecx
lea ecx, [esp + 0x44]
mov byte [esp + 0x1a4], 0x15
call fcn.00410090
add esp, 8
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x40]
call fcn.00415620
mov byte [esp + 0x19c], 0x14
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f211
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [edi + 4]
cmp edx, ebp
jne 0x40f21c
xor ecx, ecx
jmp 0x40f224
mov ecx, dword [edi + 8]
sub ecx, edx
sar ecx, 3
cmp edx, ebp
je 0x40f25e
mov eax, dword [edi + 0xc]
sub eax, edx
sar eax, 3
cmp ecx, eax
jae 0x40f25e
mov edx, dword [esp + 0x48]
mov esi, dword [edi + 8]
mov byte [esp + 0x24], 0
mov ecx, dword [esp + 0x24]
push ecx
push edx
lea eax, [esp + 0x40]
push eax
push 1
push esi
call fcn.00415060
add esp, 0x14
add esi, 8
mov dword [edi + 8], esi
jmp 0x40f280
mov esi, dword [edi + 8]
cmp edx, esi
jbe 0x40f26a
call fcn.004208da
push esi
push edi
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x8c]
push edx
mov eax, edi
call fcn.00413d60
add ebx, 1
cmp ebx, dword [esp + 0x20]
jl 0x40f0f7
mov esi, 0xf
push 9
push str.StartStep
lea ecx, [esp + 0x6c]
mov dword [esp + 0x84], esi
mov dword [esp + 0x80], ebp
mov byte [esp + 0x70], 0
call fcn.004026e0
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x108]
mov byte [esp + 0x1a0], 0x16
call fcn.00401630
test al, al
mov edi, 0x10
sete bl
mov byte [esp + 0x19c], 0x14
cmp dword [esp + 0x7c], edi
jb 0x40f2f3
mov ecx, dword [esp + 0x68]
push ecx
call fcn.00415b75
add esp, 4
test bl, bl
je 0x40f3a7
mov byte [esp + 0x19c], 0x13
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40f323
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x19c], 0x12
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f34b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x19c], 0x11
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f373
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x16c], edi
jb 0x40f38c
mov ecx, dword [esp + 0x158]
push ecx
call fcn.00415b75
add esp, 4
mov dword [esp + 0x16c], esi
mov dword [esp + 0x168], ebp
mov byte [esp + 0x158], 0
jmp 0x40ee13
push ebp
push 0x440d84
lea ecx, [esp + 0x178]
mov dword [esp + 0x190], esi
mov dword [esp + 0x18c], ebp
mov byte [esp + 0x17c], 0
call fcn.004026e0
lea ecx, [esp + 0x170]
push ecx
push str.StartCount
push str.StartStep
lea edx, [esp + 0x110]
push edx
mov byte [esp + 0x1ac], 0x17
call fcn.00401510
cmp dword [esp + 0x188], edi
mov eax, dword [esp + 0x174]
jae 0x40f40d
lea eax, [esp + 0x174]
push eax
call fcn.00423262
add esp, 4
push 0x440d84
lea ecx, [esp + 0x60]
mov dword [esp + 0x24], eax
call fcn.0040de10
push 0x440d84
lea ecx, [esp + 0x64]
mov byte [esp + 0x1a0], 0x18
call fcn.0040de10
mov byte [esp + 0x19c], 0x19
call fcn.00416e24
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f460
push 0x80004005
call fcn.004080e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
push 0
mov byte [esp + 0x1a0], 0x1a
push 0x440d84
lea ecx, [esp + 0x30]
mov dword [esp + 0x2c], 2
call fcn.0040dd00
xor ebp, ebp
cmp dword [esp + 0x20], ebp
mov dword [esp + 0x44], ebp
jle 0x40f69b
mov ebx, dword [esp + 0x48]
push ebp
push str.Step
lea ecx, [esp + 0x64]
push str._s_d
push ecx
call fcn.00415760
mov eax, dword [esp + 0x6c]
add esp, 0x10
lea edx, [esp + 0xb0]
push edx
push eax
push str.StartStep
lea ecx, [esp + 0x110]
push ecx
call fcn.00401510
cmp dword [esp + 0xc8], 0x10
jb 0x40f4f4
mov edx, dword [esp + 0xb4]
test edx, edx
jne 0x40f4fb
xor eax, eax
jmp 0x40f50b
lea edx, [esp + 0xb4]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x40f500
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x68]
call fcn.0040dd00
lea edx, [esp + 0x24]
push edx
push 1
lea ecx, [esp + 0x68]
call fcn.0040fa10
mov eax, dword [esp + 0x2c]
add esp, 8
cmp eax, 2
je 0x40f53b
cmp eax, 4
jne 0x40f615
mov edi, dword [esp + 0x28]
cmp dword [edi - 0xc], 0
jl 0x40f562
push 0x442ecc
push edi
call fcn.00422f57
add esp, 8
test eax, eax
je 0x40f562
sub eax, edi
cmp eax, 0xffffffff
jne 0x40f619
push 0x440d84
lea ecx, [esp + 0x1c]
call fcn.0040de10
mov ecx, dword [esp + 0x58]
lea eax, [esp + 0x18]
push eax
push ecx
lea ecx, [esp + 0x30]
mov byte [esp + 0x1a4], 0x1b
call fcn.00410090
mov ecx, dword [esp + 0x20]
lea eax, [ecx - 0x10]
lea esi, [edi - 0x10]
add esp, 8
cmp eax, esi
je 0x40f5ef
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x40f5d9
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x40f5d9
push eax
call fcn.004156a0
mov ebp, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x40f5cc
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
lea edi, [ebp + 0x10]
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x28], edi
jmp 0x40f5eb
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x30]
call fcn.0040dd00
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
lea eax, [ecx - 0x10]
mov byte [esp + 0x19c], 0x1a
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f619
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x40f619
mov edi, dword [esp + 0x28]
mov edx, dword [ebx + 4]
test edx, edx
jne 0x40f624
xor ecx, ecx
jmp 0x40f62c
mov ecx, dword [ebx + 8]
sub ecx, edx
sar ecx, 3
test edx, edx
je 0x40f666
mov eax, dword [ebx + 0xc]
sub eax, edx
sar eax, 3
cmp ecx, eax
jae 0x40f666
mov esi, dword [ebx + 8]
mov byte [esp + 0x48], 0
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x48]
push ecx
push edx
lea eax, [esp + 0x2c]
push eax
push 1
push esi
call fcn.00415060
add esp, 0x14
add esi, 8
mov dword [ebx + 8], esi
jmp 0x40f688
mov esi, dword [ebx + 8]
cmp edx, esi
jbe 0x40f672
call fcn.004208da
push esi
push ebx
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x8c]
push edx
mov eax, ebx
call fcn.00413d60
add ebp, 1
cmp ebp, dword [esp + 0x20]
mov dword [esp + 0x44], ebp
jl 0x40f4a4
jmp 0x40f69f
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [edi - 0x10]
mov byte [esp + 0x19c], 0x19
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f6ce
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x19c], 0x18
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f6f6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x19c], 0x17
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f71e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebp, 0x10
cmp dword [esp + 0x188], ebp
jb 0x40f73c
mov ecx, dword [esp + 0x174]
push ecx
call fcn.00415b75
add esp, 4
mov byte [esp + 0x19c], 0x13
mov eax, dword [esp + 0x3c]
mov ebx, 0xf
xor edi, edi
add eax, 0xfffffff0
mov dword [esp + 0x188], ebx
mov dword [esp + 0x184], edi
mov byte [esp + 0x174], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40f781
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x19c], 0x12
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f7a9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x19c], 0x11
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f7d1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x16c], ebp
jb 0x40f7ea
mov ecx, dword [esp + 0x158]
push ecx
call fcn.00415b75
add esp, 4
mov byte [esp + 0x19c], 0xc
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov dword [esp + 0x16c], ebx
mov dword [esp + 0x168], edi
mov byte [esp + 0x158], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40f828
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x19c], 0xb
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f850
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x100], ebp
jb 0x40f869
mov ecx, dword [esp + 0xec]
push ecx
call fcn.00415b75
add esp, 4
mov byte [esp + 0x19c], 8
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
mov dword [esp + 0x100], ebx
mov dword [esp + 0xfc], edi
mov byte [esp + 0xec], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40f8a7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0xc8], ebp
jb 0x40f8c0
mov ecx, dword [esp + 0xb4]
push ecx
call fcn.00415b75
add esp, 4
mov byte [esp + 0x19c], 6
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xc4], edi
mov byte [esp + 0xb4], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40f8fe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0xe4], ebp
jb 0x40f917
mov ecx, dword [esp + 0xd0]
push ecx
call fcn.00415b75
add esp, 4
mov byte [esp + 0x19c], 3
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xe0], edi
mov byte [esp + 0xd0], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40f955
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x19c], 0
cmp byte [esp + 0x133], 0
je 0x40f990
cmp dword [esp + 0x148], edi
je 0x40f990
cmp dword [esp + 0x11c], ebp
mov eax, dword [esp + 0x108]
jae 0x40f987
lea eax, [esp + 0x108]
push eax
call fcn.00421de2
add esp, 4
cmp dword [esp + 0x14c], ebp
jb 0x40f9a9
mov ecx, dword [esp + 0x138]
push ecx
call fcn.00415b75
add esp, 4
lea edx, [esp + 0x104]
push edx
mov dword [esp + 0x150], ebx
mov dword [esp + 0x14c], edi
mov byte [esp + 0x13c], 0
call fcn.00401020
lea eax, [esi - 0x10]
mov dword [esp + 0x19c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f9f3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
jmp 0x40e7b2
push 0x80070057
call fcn.004080e0
int3