Function at 0x40c520
Capabilities:
Check for time delay via gettickcount
Delete registry key
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42c49a
mov eax, dword fs:[0]
push eax
sub esp, 0x4ac
mov eax, dword [0x438040]
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 eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x40c5b5
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40c5b5
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push str.SetLongName___begin
push 0x26
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40c5b5
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40c5b5
mov ecx, 0x438ab0
call fcn.004043a0
push 0x43a84a
lea ecx, [ebp - 0x468]
call fcn.004031f0
mov dword [ebp - 4], 0
mov ecx, 0x438aac
mov eax, dword [vtable.CLogImplW.0]
mov esi, dword [ebp - 0x468]
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x40c64f
test esi, esi
je 0x40c64f
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40c64f
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40c601
sub ecx, edx
sar ecx, 1
push esi
lea eax, [ecx + ecx]
mov ecx, 0x438aac
push eax
mov eax, dword [vtable.CLogImplW.0]
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40c64f
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40c64f
mov ecx, 0x438ab0
call fcn.004043a0
push 0x439844
lea ecx, [ebp - 0x464]
call fcn.004031f0
push str.guest.dat
lea edx, [ebp - 0x464]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x46c]
call fcn.00402e00
add esp, 4
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
push dword [eax]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
jne 0x40c6a4
mov byte [ebp - 0x46d], 0
jmp 0x40c6b4
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
setne byte [ebp - 0x46d]
mov edx, dword [ebp - 0x46c]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40c6d2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x468]
cmp dword [eax - 0xc], 0
jl 0x40c76b
push 0x4345b4
push eax
call fcn.00410c72
mov esi, eax
add esp, 8
mov eax, dword [ebp - 0x468]
test esi, esi
jne 0x40c701
or esi, 0xffffffff
jmp 0x40c705
sub esi, eax
sar esi, 1
mov edx, dword [eax - 0xc]
lea ebx, [esi + 1]
mov ecx, ebx
test ecx, ecx
jns 0x40c775
or edi, 0xffffffff
mov eax, edi
lea ecx, [ebp - 0x468]
sub eax, esi
dec eax
push eax
push ebx
lea eax, [ebp - 0x474]
push eax
call fcn.0040ee20
add edi, 1
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x468]
js 0x40c807
cmp edi, dword [eax - 0xc]
jg 0x40c807
lea eax, [eax + edi*2]
push 0x4345b4
push eax
call fcn.00410c72
mov esi, eax
add esp, 8
mov eax, dword [ebp - 0x468]
test esi, esi
jne 0x40c79d
or esi, 0xffffffff
jmp 0x40c7a1
mov edx, dword [eax - 0xc]
or esi, 0xffffffff
xor ebx, ebx
xor ecx, ecx
cmp ecx, edx
jg 0x40c711
lea eax, [eax + ecx*2]
push 0x4345b4
push eax
call fcn.00410c72
mov edi, eax
add esp, 8
test edi, edi
je 0x40c711
sub edi, dword [ebp - 0x468]
sar edi, 1
jmp 0x40c714
sub esi, eax
sar esi, 1
mov edx, dword [eax - 0xc]
lea ebx, [esi + 1]
mov ecx, ebx
test ecx, ecx
jns 0x40c811
or edi, 0xffffffff
mov eax, edi
lea ecx, [ebp - 0x468]
sub eax, esi
dec eax
push eax
push ebx
lea eax, [ebp - 0x498]
push eax
call fcn.0040ee20
add edi, 1
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x468]
js 0x40c8a3
cmp edi, dword [eax - 0xc]
jg 0x40c8a3
lea eax, [eax + edi*2]
push 0x4345b4
push eax
call fcn.00410c72
mov esi, eax
add esp, 8
mov eax, dword [ebp - 0x468]
test esi, esi
jne 0x40c839
or esi, 0xffffffff
jmp 0x40c83d
mov edx, dword [eax - 0xc]
or esi, 0xffffffff
xor ebx, ebx
xor ecx, ecx
cmp ecx, edx
jg 0x40c7ad
lea eax, [eax + ecx*2]
push 0x4345b4
push eax
call fcn.00410c72
mov edi, eax
add esp, 8
test edi, edi
je 0x40c7ad
sub edi, dword [ebp - 0x468]
sar edi, 1
jmp 0x40c7b0
sub esi, eax
sar esi, 1
mov edx, dword [eax - 0xc]
lea ebx, [esi + 1]
mov ecx, ebx
test ecx, ecx
jns 0x40c8ad
or edi, 0xffffffff
mov eax, edi
lea ecx, [ebp - 0x468]
sub eax, esi
dec eax
push eax
push ebx
lea eax, [ebp - 0x490]
push eax
call fcn.0040ee20
add edi, 1
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x468]
js 0x40c93f
cmp edi, dword [eax - 0xc]
jg 0x40c93f
lea eax, [eax + edi*2]
push 0x4345b4
push eax
call fcn.00410c72
mov esi, eax
add esp, 8
mov eax, dword [ebp - 0x468]
test esi, esi
jne 0x40c8d5
or esi, 0xffffffff
jmp 0x40c8d9
mov edx, dword [eax - 0xc]
or esi, 0xffffffff
xor ebx, ebx
xor ecx, ecx
cmp ecx, edx
jg 0x40c849
lea eax, [eax + ecx*2]
push 0x4345b4
push eax
call fcn.00410c72
mov edi, eax
add esp, 8
test edi, edi
je 0x40c849
sub edi, dword [ebp - 0x468]
sar edi, 1
jmp 0x40c84c
sub esi, eax
sar esi, 1
mov edx, dword [eax - 0xc]
lea ebx, [esi + 1]
mov ecx, ebx
test ecx, ecx
jns 0x40c949
or edi, 0xffffffff
mov eax, edi
lea ecx, [ebp - 0x468]
sub eax, esi
dec eax
push eax
push ebx
lea eax, [ebp - 0x48c]
push eax
call fcn.0040ee20
add edi, 1
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x468]
js 0x40c9b8
cmp edi, dword [eax - 0xc]
jg 0x40c9b8
lea eax, [eax + edi*2]
push 0x4345b4
push eax
call fcn.00410c72
mov esi, eax
add esp, 8
mov eax, dword [ebp - 0x468]
test esi, esi
jne 0x40c971
or esi, 0xffffffff
jmp 0x40c975
mov edx, dword [eax - 0xc]
or esi, 0xffffffff
xor ebx, ebx
xor ecx, ecx
cmp ecx, edx
jg 0x40c8e5
lea eax, [eax + ecx*2]
push 0x4345b4
push eax
call fcn.00410c72
mov edi, eax
add esp, 8
test edi, edi
je 0x40c8e5
sub edi, dword [ebp - 0x468]
sar edi, 1
jmp 0x40c8e8
sub esi, eax
sar esi, 1
mov edx, dword [eax - 0xc]
lea edi, [esi + 1]
mov ecx, edi
test ecx, ecx
jns 0x40c9c2
or eax, 0xffffffff
sub eax, esi
lea ecx, [ebp - 0x468]
dec eax
push eax
push edi
lea eax, [ebp - 0x494]
push eax
call fcn.0040ee20
mov byte [ebp - 4], 6
push 0x5c
push dword [ebp - 0x464]
call fcn.00410ed2
add esp, 8
test eax, eax
jne 0x40c9e5
or eax, 0xffffffff
jmp 0x40c9ed
mov edx, dword [eax - 0xc]
or esi, 0xffffffff
xor edi, edi
xor ecx, ecx
cmp ecx, edx
jg 0x40c981
lea eax, [eax + ecx*2]
push 0x4345b4
push eax
call fcn.00410c72
add esp, 8
test eax, eax
je 0x40c981
sub eax, dword [ebp - 0x468]
sar eax, 1
jmp 0x40c984
sub eax, dword [ebp - 0x464]
sar eax, 1
inc eax
lea ecx, [ebp - 0x464]
push eax
lea eax, [ebp - 0x47c]
push eax
call fcn.004075e0
mov byte [ebp - 4], 7
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [0x439830]
mov ecx, eax
sub ecx, edx
cmp ecx, 0x37
ja 0x40ca1e
test edx, edx
jne 0x40ca38
push 0xa
push 6
push 0x915
push dword [0x43982c]
mov dword [0x439830], eax
call dword [sym.imp.USER32.dll_SendNotifyMessageW]
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x40ca9f
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40ca9f
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f20
push 0
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40ca9f
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40ca9f
mov ecx, 0x438ab0
call fcn.004043a0
mov eax, dword [ebp - 0x464]
cmp dword [eax - 4], 1
jle 0x40cabf
push dword [eax - 0xc]
lea ecx, [ebp - 0x464]
call fcn.00401540
mov eax, dword [ebp - 0x464]
push eax
push 0x4345b8
lea eax, [ebp - 0x210]
push 0x100
push eax
call fcn.00405790
mov eax, dword [vtable.CLogImplW.0]
add esp, 0x10
mov ecx, 0x438aac
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x40cb64
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40cb64
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40cb10
sub ecx, edx
lea eax, [ebp - 0x210]
sar ecx, 1
push eax
lea eax, [ecx + ecx]
mov ecx, 0x438aac
push eax
mov eax, dword [vtable.CLogImplW.0]
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40cb64
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40cb64
mov ecx, 0x438ab0
call fcn.004043a0
mov esi, dword [ebp - 0x474]
cmp dword [esi - 4], 1
jle 0x40cb84
push dword [esi - 0xc]
lea ecx, [ebp - 0x474]
call fcn.00401540
mov esi, dword [ebp - 0x474]
push esi
push str.sInstallFolderDst___s
lea eax, [ebp - 0x210]
push 0x100
push eax
call fcn.00405790
mov eax, dword [vtable.CLogImplW.0]
add esp, 0x10
mov ecx, 0x438aac
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x40cc24
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40cc24
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40cbd0
sub ecx, edx
lea eax, [ebp - 0x210]
sar ecx, 1
push eax
lea eax, [ecx + ecx]
mov ecx, 0x438aac
push eax
mov eax, dword [vtable.CLogImplW.0]
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40cc24
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40cc24
mov ecx, 0x438ab0
call fcn.004043a0
mov eax, dword [ebp - 0x498]
cmp dword [eax - 4], 1
jle 0x40cc44
push dword [eax - 0xc]
lea ecx, [ebp - 0x498]
call fcn.00401540
mov eax, dword [ebp - 0x498]
push eax
push str.sOldShortName___s
lea eax, [ebp - 0x210]
push 0x100
push eax
call fcn.00405790
mov eax, dword [vtable.CLogImplW.0]
add esp, 0x10
mov ecx, 0x438aac
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x40cce4
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40cce4
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40cc90
sub ecx, edx
lea eax, [ebp - 0x210]
sar ecx, 1
push eax
lea eax, [ecx + ecx]
mov ecx, 0x438aac
push eax
mov eax, dword [vtable.CLogImplW.0]
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40cce4
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40cce4
mov ecx, 0x438ab0
call fcn.004043a0
push 0x439c50
push str.sNewShortName___s
lea eax, [ebp - 0x210]
push 0x100
push eax
call fcn.00405790
mov eax, dword [vtable.CLogImplW.0]
add esp, 0x10
mov ecx, 0x438aac
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x40cd85
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40cd85
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40cd31
sub ecx, edx
lea eax, [ebp - 0x210]
sar ecx, 1
push eax
lea eax, [ecx + ecx]
mov ecx, 0x438aac
push eax
mov eax, dword [vtable.CLogImplW.0]
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40cd85
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40cd85
mov ecx, 0x438ab0
call fcn.004043a0
mov eax, dword [ebp - 0x490]
cmp dword [eax - 4], 1
jle 0x40cda5
push dword [eax - 0xc]
lea ecx, [ebp - 0x490]
call fcn.00401540
mov eax, dword [ebp - 0x490]
push eax
push str.sOldLongName___s
lea eax, [ebp - 0x210]
push 0x100
push eax
call fcn.00405790
mov eax, dword [vtable.CLogImplW.0]
add esp, 0x10
mov ecx, 0x438aac
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x40ce44
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40ce44
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40cdf0
sub ecx, edx
lea eax, [ebp - 0x210]
sar ecx, 1
push eax
lea eax, [ecx + ecx]
mov ecx, 0x438aac
push eax
mov eax, dword [vtable.CLogImplW.0]
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40ce44
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40ce44
mov ecx, 0x438ab0
call fcn.004043a0
push 0x439c92
push str.sNewLongName___s
lea eax, [ebp - 0x210]
push 0x100
push eax
call fcn.00405790
mov eax, dword [vtable.CLogImplW.0]
add esp, 0x10
mov ecx, 0x438aac
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x40cee5
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40cee5
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40ce91
sub ecx, edx
lea eax, [ebp - 0x210]
sar ecx, 1
push eax
lea eax, [ecx + ecx]
mov ecx, 0x438aac
push eax
mov eax, dword [vtable.CLogImplW.0]
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40cee5
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40cee5
mov ecx, 0x438ab0
call fcn.004043a0
mov eax, dword [ebp - 0x48c]
cmp dword [eax - 4], 1
jle 0x40cf05
push dword [eax - 0xc]
lea ecx, [ebp - 0x48c]
call fcn.00401540
mov eax, dword [ebp - 0x48c]
push eax
push str.sOldRegPath___s
lea eax, [ebp - 0x210]
push 0x100
push eax
call fcn.00405790
mov eax, dword [vtable.CLogImplW.0]
add esp, 0x10
mov ecx, 0x438aac
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x40cfa4
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40cfa4
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40cf50
sub ecx, edx
lea eax, [ebp - 0x210]
sar ecx, 1
push eax
lea eax, [ecx + ecx]
mov ecx, 0x438aac
push eax
mov eax, dword [vtable.CLogImplW.0]
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40cfa4
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40cfa4
mov ecx, 0x438ab0
call fcn.004043a0
push 0x439d96
push str.sNewRegPath___s
lea eax, [ebp - 0x210]
push 0x100
push eax
call fcn.00405790
mov eax, dword [vtable.CLogImplW.0]
add esp, 0x10
mov ecx, 0x438aac
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x40d045
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40d045
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40cff1
sub ecx, edx
lea eax, [ebp - 0x210]
sar ecx, 1
push eax
lea eax, [ecx + ecx]
mov ecx, 0x438aac
push eax
mov eax, dword [vtable.CLogImplW.0]
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40d045
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40d045
mov ecx, 0x438ab0
call fcn.004043a0
mov eax, dword [ebp - 0x494]
cmp dword [eax - 4], 1
jle 0x40d065
push dword [eax - 0xc]
lea ecx, [ebp - 0x494]
call fcn.00401540
mov eax, dword [ebp - 0x494]
push eax
push str.sOldIconName___s
lea eax, [ebp - 0x210]
push 0x100
push eax
call fcn.00405790
mov eax, dword [vtable.CLogImplW.0]
add esp, 0x10
mov ecx, 0x438aac
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x40d104
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40d104
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40d0b0
sub ecx, edx
lea eax, [ebp - 0x210]
sar ecx, 1
push eax
lea eax, [ecx + ecx]
mov ecx, 0x438aac
push eax
mov eax, dword [vtable.CLogImplW.0]
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40d104
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40d104
mov ecx, 0x438ab0
call fcn.004043a0
push 0x439d14
push str.sNewIconName___s
lea eax, [ebp - 0x210]
push 0x100
push eax
call fcn.00405790
mov eax, dword [vtable.CLogImplW.0]
add esp, 0x10
mov ecx, 0x438aac
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x40d1a5
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40d1a5
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40d151
sub ecx, edx
lea eax, [ebp - 0x210]
sar ecx, 1
push eax
lea eax, [ecx + ecx]
mov ecx, 0x438aac
push eax
mov eax, dword [vtable.CLogImplW.0]
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40d1a5
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40d1a5
mov ecx, 0x438ab0
call fcn.004043a0
mov eax, dword [ebp - 0x47c]
cmp dword [eax - 4], 1
jle 0x40d1c5
push dword [eax - 0xc]
lea ecx, [ebp - 0x47c]
call fcn.00401540
mov eax, dword [ebp - 0x47c]
push eax
push str.sCutInstallFolder___s
lea eax, [ebp - 0x210]
push 0x100
push eax
call fcn.00405790
mov eax, dword [vtable.CLogImplW.0]
add esp, 0x10
mov ecx, 0x438aac
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x40d264
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40d264
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40d210
sub ecx, edx
lea eax, [ebp - 0x210]
sar ecx, 1
push eax
lea eax, [ecx + ecx]
mov ecx, 0x438aac
push eax
mov eax, dword [vtable.CLogImplW.0]
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40d264
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40d264
mov ecx, 0x438ab0
call fcn.004043a0
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x40d2cb
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40d2cb
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f20
push 0
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40d2cb
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40d2cb
mov ecx, 0x438ab0
call fcn.004043a0
call fcn.00401920
mov ecx, eax
test ecx, ecx
je 0x40defe
mov eax, dword [ecx]
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0x484], edi
mov byte [ebp - 4], 8
lea ebx, [edi - 0x10]
mov eax, dword [ebp - 0x464]
lea edx, [eax - 0x10]
cmp edx, ebx
je 0x40d352
cmp dword [ebx + 0xc], 0
lea edi, [ebx + 0xc]
jl 0x40d33d
mov ecx, dword [edx]
cmp ecx, dword [ebx]
jne 0x40d33d
mov ecx, edx
call fcn.00401350
mov dword [ebp - 0x46c], eax
or ecx, 0xffffffff
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x40d332
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x46c]
lea edi, [eax + 0x10]
mov dword [ebp - 0x484], edi
jmp 0x40d352
push dword [eax - 0xc]
lea ecx, [ebp - 0x484]
push eax
call fcn.00403530
mov edi, dword [ebp - 0x484]
mov ebx, dword [edi - 0xc]
test ebx, ebx
js 0x40def4
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, ebx
or eax, ecx
jge 0x40d380
push ebx
lea ecx, [ebp - 0x484]
call fcn.00401430
mov edi, dword [ebp - 0x484]
lea eax, [ebx + 1]
push eax
push edi
call fcn.00414522
add esp, 8
cmp ebx, dword [edi - 8]
jg 0x40def4
xor eax, eax
mov dword [edi - 0xc], ebx
mov word [edi + ebx*2], ax
call fcn.00401920
mov ecx, eax
test ecx, ecx
je 0x40df08
mov eax, dword [ecx]
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0x480], edi
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 9
lea ebx, [edi - 0x10]
cmp ecx, ebx
je 0x40d41e
cmp dword [ebx + 0xc], 0
lea edi, [ebx + 0xc]
jl 0x40d409
mov eax, dword [ecx]
cmp eax, dword [ebx]
jne 0x40d409
call fcn.00401350
mov dword [ebp - 0x46c], eax
or ecx, 0xffffffff
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x40d3fe
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x46c]
lea edi, [eax + 0x10]
mov dword [ebp - 0x480], edi
jmp 0x40d41e
push dword [esi - 0xc]
lea ecx, [ebp - 0x480]
push esi
call fcn.00403530
mov edi, dword [ebp - 0x480]
mov ebx, dword [edi - 0xc]
test ebx, ebx
js 0x40def4
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, ebx
or eax, ecx
jge 0x40d44c
push ebx
lea ecx, [ebp - 0x480]
call fcn.00401430
mov edi, dword [ebp - 0x480]
lea eax, [ebx + 1]
push eax
push edi
call fcn.00414522
add esp, 8
cmp ebx, dword [edi - 8]
jg 0x40def4
xor eax, eax
mov dword [edi - 0xc], ebx
mov word [edi + ebx*2], ax
mov ecx, edi
mov eax, dword [ebp - 0x484]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40d499
test dx, dx
je 0x40d495
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40d499
add eax, 4
add ecx, 4
test dx, dx
jne 0x40d473
xor eax, eax
jmp 0x40d49e
sbb eax, eax
or eax, 1
test eax, eax
je 0x40d6ec
mov eax, dword [ebp - 0x47c]
cmp dword [eax - 0xc], 3
jl 0x40d6db
cmp dword [esi - 4], 1
jle 0x40d4d0
push dword [esi - 0xc]
lea ecx, [ebp - 0x474]
call fcn.00401540
mov esi, dword [ebp - 0x474]
mov ecx, esi
call fcn.00405d20
cmp dword [esi - 4], 1
jle 0x40d4f1
push dword [esi - 0xc]
lea ecx, [ebp - 0x474]
call fcn.00401540
mov esi, dword [ebp - 0x474]
lea eax, [ebp - 0x460]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
je 0x40d51c
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x460]
shr eax, 4
test al, 1
jne 0x40d6db
mov ebx, 0xa
nop dword [eax]
nop word [eax + eax]
mov eax, dword [ebp - 0x464]
mov dword [ebp - 0x46c], eax
cmp dword [eax - 4], 1
jle 0x40d55c
push dword [eax - 0xc]
lea ecx, [ebp - 0x464]
call fcn.00401540
mov eax, dword [ebp - 0x464]
mov dword [ebp - 0x46c], eax
cmp dword [esi - 4], 1
jle 0x40d576
push dword [esi - 0xc]
lea ecx, [ebp - 0x474]
call fcn.00401540
mov esi, dword [ebp - 0x474]
push esi
push dword [ebp - 0x46c]
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov dword [ebp - 0x46c], eax
test eax, eax
jne 0x40d598
push 0xfa
call dword [sym.imp.KERNEL32.dll_Sleep]
inc ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [0x439830]
mov ecx, eax
sub ecx, edx
cmp ecx, 0x37
ja 0x40d5bb
test edx, edx
je 0x40d5bb
test ebx, ebx
je 0x40d5bb
cmp ebx, 0x64
jne 0x40d5d4
push ebx
push 6
push 0x915
push dword [0x43982c]
mov dword [0x439830], eax
call dword [sym.imp.USER32.dll_SendNotifyMessageW]
cmp dword [ebp - 0x46c], 0
jne 0x40d5e9
lea eax, [ebx - 0xa]
cmp eax, 0xa
jl 0x40d530
cmp dword [esi - 4], 1
jle 0x40d603
push dword [esi - 0xc]
lea ecx, [ebp - 0x474]
call fcn.00401540
mov esi, dword [ebp - 0x474]
mov eax, dword [ebp - 0x464]
cmp dword [eax - 4], 1
jle 0x40d623
push dword [eax - 0xc]
lea ecx, [ebp - 0x464]
call fcn.00401540
mov eax, dword [ebp - 0x464]
mov ebx, dword [ebp - 0x46c]
mov edx, str.fail
test ebx, ebx
mov ecx, 0x434770
cmove ecx, edx
push ecx
push esi
push eax
push str.MoveFiles_from___s__to___s__result__s
lea eax, [ebp - 0x210]
push 0x100
push eax
call fcn.00405790
mov eax, dword [vtable.CLogImplW.0]
add esp, 0x18
mov ecx, 0x438aac
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x40d6d7
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40d6d7
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40d683
sub ecx, edx
lea eax, [ebp - 0x210]
sar ecx, 1
push eax
lea eax, [ecx + ecx]
mov ecx, 0x438aac
push eax
mov eax, dword [vtable.CLogImplW.0]
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40d6d7
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40d6d7
mov ecx, 0x438ab0
call fcn.004043a0
test ebx, ebx
jne 0x40d6ec
mov ecx, 1
call fcn.00408c20
xor bl, bl
jmp 0x40dd93
cmp byte [ebp - 0x46d], 0
mov dword [ebp - 0x46c], 0xffffffff
jne 0x40db0c
lea ecx, [ebp - 0x4b8]
call fcn.00401d80
mov byte [ebp - 4], 0xa
mov edx, 0x439d96
mov eax, dword [ebp - 0x48c]
mov ecx, eax
nop
mov bx, word [ecx]
cmp bx, word [edx]
jne 0x40d746
test bx, bx
je 0x40d742
mov bx, word [ecx + 2]
cmp bx, word [edx + 2]
jne 0x40d746
add ecx, 4
add edx, 4
test bx, bx
jne 0x40d720
xor ecx, ecx
jmp 0x40d74b
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x40d9d7
push 0x80000002
push ecx
mov ebx, esp
lea ecx, [eax - 0x10]
mov dword [ebp - 0x488], ebx
call fcn.00401350
add eax, 0x10
lea ecx, [ebp - 0x4b8]
mov dword [ebx], eax
call fcn.00401f70
lea eax, [ebp - 0x464]
push eax
lea ecx, [ebp - 0x4b8]
call fcn.00402920
mov ebx, eax
test ebx, ebx
js 0x40d8f9
mov edx, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov edx, dword [edx + 0xc]
call edx
test al, al
je 0x40d7fd
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40d7fd
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push str.delete_old_uninstall_information
push 0x40
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40d7fd
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40d7fd
mov ecx, 0x438ab0
call fcn.004043a0
call fcn.00401920
mov ecx, eax
test ecx, ecx
je 0x40df12
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x46c], eax
push ebx
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x46c]
push dword [ebp - 0x490]
push str._s__d
push eax
call fcn.00407c20
mov edi, dword [ebp - 0x46c]
add esp, 0x10
cmp dword [edi - 0xc], 0
jle 0x40d8d7
lea ecx, [ebp - 0x478]
call fcn.00401320
push edi
lea eax, [ebp - 0x478]
mov byte [ebp - 4], 0xc
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall_s
push eax
call fcn.00407c20
mov esi, dword [ebp - 0x478]
add esp, 0xc
cmp dword [esi - 4], 1
jle 0x40d88d
push dword [esi - 0xc]
lea ecx, [ebp - 0x478]
call fcn.00401540
mov esi, dword [ebp - 0x478]
push esi
push str.SHDeleteKey:__s
lea eax, [ebp - 0x210]
push 0x100
push eax
call fcn.00405790
add esp, 0x10
lea eax, [ebp - 0x210]
mov ecx, 0x438aac
push 1
push eax
call fcn.00404b00
push esi
push 0x80000002
call dword [sym.imp.SHLWAPI.dll_SHDeleteKeyW]
lea ecx, [ebp - 0x478]
call fcn.00401300
mov esi, dword [ebp - 0x474]
mov byte [ebp - 4], 0xa
add edi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x40d8f3
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x480]
mov eax, dword [ebp - 0x464]
cmp dword [eax - 4], 1
jle 0x40d919
push dword [eax - 0xc]
lea ecx, [ebp - 0x464]
call fcn.00401540
mov eax, dword [ebp - 0x464]
push eax
push str.DeleteInstallDirectoryes:__s
lea eax, [ebp - 0x210]
push 0x100
push eax
call fcn.00405790
mov eax, dword [vtable.CLogImplW.0]
add esp, 0x10
mov ecx, 0x438aac
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x40d9b6
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40d9b6
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40d962
sub ecx, edx
lea eax, [ebp - 0x210]
sar ecx, 1
push eax
lea eax, [ecx + ecx]
mov ecx, 0x438aac
push eax
mov eax, dword [vtable.CLogImplW.0]
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40d9b6
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40d9b6
mov ecx, 0x438ab0
call fcn.004043a0
lea eax, [ebp - 0x464]
push eax
lea ecx, [ebp - 0x4b8]
call fcn.00402ae0
mov dword [ebp - 0x46c], 0xffffffff
jmp 0x40dafd
push 0xffffffffffffffff
push str.RenameInstallDirectoryes:_index___d
lea eax, [ebp - 0x210]
push 0x100
push eax
call fcn.00405790
mov eax, dword [vtable.CLogImplW.0]
add esp, 0x10
mov ecx, 0x438aac
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x40da75
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40da75
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40da21
sub ecx, edx
lea eax, [ebp - 0x210]
sar ecx, 1
push eax
lea eax, [ecx + ecx]
mov ecx, 0x438aac
push eax
mov eax, dword [vtable.CLogImplW.0]
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40da75
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40da75
mov ecx, 0x438ab0
call fcn.004043a0
push 0x80000002
push ecx
mov ebx, esp
mov dword [ebp - 0x488], ebx
mov ecx, dword [ebp - 0x48c]
lea ecx, [ecx - 0x10]
call fcn.00401350
add eax, 0x10
lea ecx, [ebp - 0x4b8]
mov dword [ebx], eax
call fcn.00401f70
lea eax, [ebp - 0x464]
push eax
lea ecx, [ebp - 0x4b8]
call fcn.00402920
mov ebx, eax
mov dword [ebp - 0x46c], ebx
test ebx, ebx
js 0x40dafd
mov ecx, dword [ebp - 0x4ac]
sub ecx, dword [ebp - 0x4b0]
sar ecx, 2
cmp ebx, ecx
jge 0x40dafd
lea ecx, [ebp - 0x4b8]
call fcn.00402090
mov eax, dword [ebp - 0x4b0]
lea ecx, [eax + ebx*4]
lea eax, [ebp - 0x474]
push eax
call fcn.00403180
lea ecx, [ebp - 0x4b8]
call fcn.004025f0
lea ecx, [ebp - 0x4b8]
mov byte [ebp - 4], 9
call fcn.00401eb0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [0x439830]
mov ecx, eax
sub ecx, edx
cmp ecx, 0x37
ja 0x40db25
test edx, edx
jne 0x40db3f
push 0x50
push 6
push 0x915
push dword [0x43982c]
mov dword [0x439830], eax
call dword [sym.imp.USER32.dll_SendNotifyMessageW]
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x40dba6
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40dba6
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push str.deleteAllShortcut
push 0x22
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40dba6
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40dba6
mov ecx, 0x438ab0
call fcn.004043a0
push ecx
mov ebx, esp
mov dword [ebp - 0x488], esp
mov dword [ebp - 0x478], ebx
mov ecx, dword [ebp - 0x490]
add ecx, 0xfffffff0
call fcn.00401350
add eax, 0x10
mov dword [ebx], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0xd
push str.Launcher.exe
lea edx, [ebp - 0x464]
call fcn.00402e00
add esp, 4
mov byte [ebp - 4], 9
call fcn.00406730
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [0x439830]
mov ecx, eax
sub ecx, edx
cmp ecx, 0x37
ja 0x40dc07
test edx, edx
jne 0x40dc21
push 0x5a
push 6
push 0x915
push dword [0x43982c]
mov dword [0x439830], eax
call dword [sym.imp.USER32.dll_SendNotifyMessageW]
lea ecx, [esi - 0x10]
call fcn.00401350
mov ebx, eax
lea esi, [ebx + 0x10]
mov dword [ebp - 0x478], esi
push 0x208
push 0
push 0x439844
mov byte [ebp - 4], 0xe
call fcn.00411750
mov eax, dword [ebx + 4]
add esp, 0xc
cmp dword [ebx + 0xc], 1
mov dword [ebp - 0x488], eax
jle 0x40dc73
push eax
lea ecx, [ebp - 0x478]
call fcn.00401540
mov esi, dword [ebp - 0x478]
mov eax, dword [ebp - 0x488]
lea ebx, [eax + eax]
test ebx, ebx
je 0x40dcd4
test esi, esi
je 0x40dc97
cmp ebx, 0x206
ja 0x40dc97
push ebx
push esi
push 0x439844
call fcn.004111d0
add esp, 0xc
jmp 0x40dcd4
push 0x206
push 0
push 0x439844
call fcn.00411750
add esp, 0xc
test esi, esi
jne 0x40dcbc
call fcn.00414c4c
mov dword [eax], 0x16
jmp 0x40dccf
cmp ebx, 0x206
jbe 0x40dcd4
call fcn.00414c4c
mov dword [eax], 0x22
call fcn.00414b4e
mov byte [ebp - 4], 9
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x40dcf0
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x46d], 0
jne 0x40dd04
mov ecx, dword [ebp - 0x46c]
call fcn.0040b2c0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x64
push 6
push 0x915
push dword [0x43982c]
mov dword [0x439830], eax
call dword [sym.imp.USER32.dll_SendNotifyMessageW]
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x40dd8b
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40dd8b
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push str.SetLongName___end
push 0x22
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40dd8b
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40dd8b
mov ecx, 0x438ab0
call fcn.004043a0
mov esi, dword [ebp - 0x474]
mov bl, 1
mov byte [ebp - 4], 8
add edi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x40ddaf
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 7
or edi, 0xffffffff
mov edx, dword [ebp - 0x484]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40ddd3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 6
mov eax, edi
mov edx, dword [ebp - 0x47c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40ddf4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 5
mov eax, edi
mov edx, dword [ebp - 0x494]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40de15
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 4
mov eax, edi
mov edx, dword [ebp - 0x48c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40de36
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
mov eax, edi
mov edx, dword [ebp - 0x490]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40de57
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov eax, edi
mov edx, dword [ebp - 0x498]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40de78
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
add esi, 0xfffffff0
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x40de93
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov eax, edi
mov edx, dword [ebp - 0x464]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40deb4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x468]
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], edi
dec edi
test edi, edi
jg 0x40ded6
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov al, bl
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.0040f784
mov esp, ebp
pop ebp
ret
push 0x80070057
call fcn.004016f0
push 0x80004005
call fcn.004016f0
push 0x80004005
call fcn.004016f0
push 0x80004005
call fcn.004016f0
int3