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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42c4da
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 0x40c5d5
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40c5d5
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 0x40c5d5
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40c5d5
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 0x40c66f
test esi, esi
je 0x40c66f
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40c66f
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40c621
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 0x40c66f
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40c66f
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 0x40c6c4
mov byte [ebp - 0x46d], 0
jmp 0x40c6d4
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 0x40c6f2
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 0x40c78b
push 0x4345b4
push eax
call fcn.00410cb2
mov esi, eax
add esp, 8
mov eax, dword [ebp - 0x468]
test esi, esi
jne 0x40c721
or esi, 0xffffffff
jmp 0x40c725
sub esi, eax
sar esi, 1
mov edx, dword [eax - 0xc]
lea ebx, [esi + 1]
mov ecx, ebx
test ecx, ecx
jns 0x40c795
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.0040ee40
add edi, 1
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x468]
js 0x40c827
cmp edi, dword [eax - 0xc]
jg 0x40c827
lea eax, [eax + edi*2]
push 0x4345b4
push eax
call fcn.00410cb2
mov esi, eax
add esp, 8
mov eax, dword [ebp - 0x468]
test esi, esi
jne 0x40c7bd
or esi, 0xffffffff
jmp 0x40c7c1
mov edx, dword [eax - 0xc]
or esi, 0xffffffff
xor ebx, ebx
xor ecx, ecx
cmp ecx, edx
jg 0x40c731
lea eax, [eax + ecx*2]
push 0x4345b4
push eax
call fcn.00410cb2
mov edi, eax
add esp, 8
test edi, edi
je 0x40c731
sub edi, dword [ebp - 0x468]
sar edi, 1
jmp 0x40c734
sub esi, eax
sar esi, 1
mov edx, dword [eax - 0xc]
lea ebx, [esi + 1]
mov ecx, ebx
test ecx, ecx
jns 0x40c831
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.0040ee40
add edi, 1
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x468]
js 0x40c8c3
cmp edi, dword [eax - 0xc]
jg 0x40c8c3
lea eax, [eax + edi*2]
push 0x4345b4
push eax
call fcn.00410cb2
mov esi, eax
add esp, 8
mov eax, dword [ebp - 0x468]
test esi, esi
jne 0x40c859
or esi, 0xffffffff
jmp 0x40c85d
mov edx, dword [eax - 0xc]
or esi, 0xffffffff
xor ebx, ebx
xor ecx, ecx
cmp ecx, edx
jg 0x40c7cd
lea eax, [eax + ecx*2]
push 0x4345b4
push eax
call fcn.00410cb2
mov edi, eax
add esp, 8
test edi, edi
je 0x40c7cd
sub edi, dword [ebp - 0x468]
sar edi, 1
jmp 0x40c7d0
sub esi, eax
sar esi, 1
mov edx, dword [eax - 0xc]
lea ebx, [esi + 1]
mov ecx, ebx
test ecx, ecx
jns 0x40c8cd
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.0040ee40
add edi, 1
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x468]
js 0x40c95f
cmp edi, dword [eax - 0xc]
jg 0x40c95f
lea eax, [eax + edi*2]
push 0x4345b4
push eax
call fcn.00410cb2
mov esi, eax
add esp, 8
mov eax, dword [ebp - 0x468]
test esi, esi
jne 0x40c8f5
or esi, 0xffffffff
jmp 0x40c8f9
mov edx, dword [eax - 0xc]
or esi, 0xffffffff
xor ebx, ebx
xor ecx, ecx
cmp ecx, edx
jg 0x40c869
lea eax, [eax + ecx*2]
push 0x4345b4
push eax
call fcn.00410cb2
mov edi, eax
add esp, 8
test edi, edi
je 0x40c869
sub edi, dword [ebp - 0x468]
sar edi, 1
jmp 0x40c86c
sub esi, eax
sar esi, 1
mov edx, dword [eax - 0xc]
lea ebx, [esi + 1]
mov ecx, ebx
test ecx, ecx
jns 0x40c969
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.0040ee40
add edi, 1
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x468]
js 0x40c9d8
cmp edi, dword [eax - 0xc]
jg 0x40c9d8
lea eax, [eax + edi*2]
push 0x4345b4
push eax
call fcn.00410cb2
mov esi, eax
add esp, 8
mov eax, dword [ebp - 0x468]
test esi, esi
jne 0x40c991
or esi, 0xffffffff
jmp 0x40c995
mov edx, dword [eax - 0xc]
or esi, 0xffffffff
xor ebx, ebx
xor ecx, ecx
cmp ecx, edx
jg 0x40c905
lea eax, [eax + ecx*2]
push 0x4345b4
push eax
call fcn.00410cb2
mov edi, eax
add esp, 8
test edi, edi
je 0x40c905
sub edi, dword [ebp - 0x468]
sar edi, 1
jmp 0x40c908
sub esi, eax
sar esi, 1
mov edx, dword [eax - 0xc]
lea edi, [esi + 1]
mov ecx, edi
test ecx, ecx
jns 0x40c9e2
or eax, 0xffffffff
sub eax, esi
lea ecx, [ebp - 0x468]
dec eax
push eax
push edi
lea eax, [ebp - 0x494]
push eax
call fcn.0040ee40
mov byte [ebp - 4], 6
push 0x5c
push dword [ebp - 0x464]
call fcn.00410f12
add esp, 8
test eax, eax
jne 0x40ca05
or eax, 0xffffffff
jmp 0x40ca0d
mov edx, dword [eax - 0xc]
or esi, 0xffffffff
xor edi, edi
xor ecx, ecx
cmp ecx, edx
jg 0x40c9a1
lea eax, [eax + ecx*2]
push 0x4345b4
push eax
call fcn.00410cb2
add esp, 8
test eax, eax
je 0x40c9a1
sub eax, dword [ebp - 0x468]
sar eax, 1
jmp 0x40c9a4
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 0x40ca3e
test edx, edx
jne 0x40ca58
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 0x40cabf
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40cabf
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f20
push 0
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40cabf
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40cabf
mov ecx, 0x438ab0
call fcn.004043a0
mov eax, dword [ebp - 0x464]
cmp dword [eax - 4], 1
jle 0x40cadf
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 0x40cb84
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40cb84
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40cb30
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 0x40cb84
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40cb84
mov ecx, 0x438ab0
call fcn.004043a0
mov esi, dword [ebp - 0x474]
cmp dword [esi - 4], 1
jle 0x40cba4
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 0x40cc44
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40cc44
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40cbf0
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 0x40cc44
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40cc44
mov ecx, 0x438ab0
call fcn.004043a0
mov eax, dword [ebp - 0x498]
cmp dword [eax - 4], 1
jle 0x40cc64
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 0x40cd04
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40cd04
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40ccb0
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 0x40cd04
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40cd04
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 0x40cda5
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40cda5
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40cd51
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 0x40cda5
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40cda5
mov ecx, 0x438ab0
call fcn.004043a0
mov eax, dword [ebp - 0x490]
cmp dword [eax - 4], 1
jle 0x40cdc5
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 0x40ce64
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40ce64
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40ce10
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 0x40ce64
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40ce64
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 0x40cf05
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40cf05
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40ceb1
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 0x40cf05
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40cf05
mov ecx, 0x438ab0
call fcn.004043a0
mov eax, dword [ebp - 0x48c]
cmp dword [eax - 4], 1
jle 0x40cf25
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 0x40cfc4
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40cfc4
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40cf70
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 0x40cfc4
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40cfc4
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 0x40d065
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40d065
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40d011
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 0x40d065
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40d065
mov ecx, 0x438ab0
call fcn.004043a0
mov eax, dword [ebp - 0x494]
cmp dword [eax - 4], 1
jle 0x40d085
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 0x40d124
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40d124
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40d0d0
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 0x40d124
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40d124
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 0x40d1c5
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40d1c5
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40d171
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 0x40d1c5
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40d1c5
mov ecx, 0x438ab0
call fcn.004043a0
mov eax, dword [ebp - 0x47c]
cmp dword [eax - 4], 1
jle 0x40d1e5
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 0x40d284
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40d284
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40d230
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 0x40d284
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40d284
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 0x40d2eb
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40d2eb
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f20
push 0
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x40d2eb
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40d2eb
mov ecx, 0x438ab0
call fcn.004043a0
call fcn.00401920
mov ecx, eax
test ecx, ecx
je 0x40df1e
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 0x40d372
cmp dword [ebx + 0xc], 0
lea edi, [ebx + 0xc]
jl 0x40d35d
mov ecx, dword [edx]
cmp ecx, dword [ebx]
jne 0x40d35d
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 0x40d352
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 0x40d372
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 0x40df14
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, ebx
or eax, ecx
jge 0x40d3a0
push ebx
lea ecx, [ebp - 0x484]
call fcn.00401430
mov edi, dword [ebp - 0x484]
lea eax, [ebx + 1]
push eax
push edi
call fcn.00414564
add esp, 8
cmp ebx, dword [edi - 8]
jg 0x40df14
xor eax, eax
mov dword [edi - 0xc], ebx
mov word [edi + ebx*2], ax
call fcn.00401920
mov ecx, eax
test ecx, ecx
je 0x40df28
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 0x40d43e
cmp dword [ebx + 0xc], 0
lea edi, [ebx + 0xc]
jl 0x40d429
mov eax, dword [ecx]
cmp eax, dword [ebx]
jne 0x40d429
call fcn.00401350
mov dword [ebp - 0x46c], eax
or ecx, 0xffffffff
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x40d41e
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 0x40d43e
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 0x40df14
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, ebx
or eax, ecx
jge 0x40d46c
push ebx
lea ecx, [ebp - 0x480]
call fcn.00401430
mov edi, dword [ebp - 0x480]
lea eax, [ebx + 1]
push eax
push edi
call fcn.00414564
add esp, 8
cmp ebx, dword [edi - 8]
jg 0x40df14
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 0x40d4b9
test dx, dx
je 0x40d4b5
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40d4b9
add eax, 4
add ecx, 4
test dx, dx
jne 0x40d493
xor eax, eax
jmp 0x40d4be
sbb eax, eax
or eax, 1
test eax, eax
je 0x40d70c
mov eax, dword [ebp - 0x47c]
cmp dword [eax - 0xc], 3
jl 0x40d6fb
cmp dword [esi - 4], 1
jle 0x40d4f0
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 0x40d511
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 0x40d53c
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x460]
shr eax, 4
test al, 1
jne 0x40d6fb
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 0x40d57c
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 0x40d596
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 0x40d5b8
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 0x40d5db
test edx, edx
je 0x40d5db
test ebx, ebx
je 0x40d5db
cmp ebx, 0x64
jne 0x40d5f4
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 0x40d609
lea eax, [ebx - 0xa]
cmp eax, 0xa
jl 0x40d550
cmp dword [esi - 4], 1
jle 0x40d623
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 0x40d643
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 0x40d6f7
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40d6f7
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40d6a3
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 0x40d6f7
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40d6f7
mov ecx, 0x438ab0
call fcn.004043a0
test ebx, ebx
jne 0x40d70c
mov ecx, 1
call fcn.00408c40
xor bl, bl
jmp 0x40ddb3
cmp byte [ebp - 0x46d], 0
mov dword [ebp - 0x46c], 0xffffffff
jne 0x40db2c
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 0x40d766
test bx, bx
je 0x40d762
mov bx, word [ecx + 2]
cmp bx, word [edx + 2]
jne 0x40d766
add ecx, 4
add edx, 4
test bx, bx
jne 0x40d740
xor ecx, ecx
jmp 0x40d76b
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x40d9f7
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 0x40d919
mov edx, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov edx, dword [edx + 0xc]
call edx
test al, al
je 0x40d81d
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40d81d
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 0x40d81d
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40d81d
mov ecx, 0x438ab0
call fcn.004043a0
call fcn.00401920
mov ecx, eax
test ecx, ecx
je 0x40df32
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 0x40d8f7
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 0x40d8ad
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 0x40d913
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 0x40d939
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 0x40d9d6
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40d9d6
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40d982
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 0x40d9d6
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40d9d6
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 0x40db1d
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 0x40da95
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40da95
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40da41
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 0x40da95
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40da95
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 0x40db1d
mov ecx, dword [ebp - 0x4ac]
sub ecx, dword [ebp - 0x4b0]
sar ecx, 2
cmp ebx, ecx
jge 0x40db1d
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 0x40db45
test edx, edx
jne 0x40db5f
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 0x40dbc6
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40dbc6
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 0x40dbc6
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40dbc6
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 0x40dc27
test edx, edx
jne 0x40dc41
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.00411790
mov eax, dword [ebx + 4]
add esp, 0xc
cmp dword [ebx + 0xc], 1
mov dword [ebp - 0x488], eax
jle 0x40dc93
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 0x40dcf4
test esi, esi
je 0x40dcb7
cmp ebx, 0x206
ja 0x40dcb7
push ebx
push esi
push 0x439844
call fcn.00411210
add esp, 0xc
jmp 0x40dcf4
push 0x206
push 0
push 0x439844
call fcn.00411790
add esp, 0xc
test esi, esi
jne 0x40dcdc
call fcn.00414c8e
mov dword [eax], 0x16
jmp 0x40dcef
cmp ebx, 0x206
jbe 0x40dcf4
call fcn.00414c8e
mov dword [eax], 0x22
call fcn.00414b90
mov byte [ebp - 4], 9
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x40dd10
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x46d], 0
jne 0x40dd24
mov ecx, dword [ebp - 0x46c]
call fcn.0040b2e0
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 0x40ddab
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
mov eax, dword [eax + 0x30]
call eax
test al, al
jne 0x40ddab
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 0x40ddab
mov eax, dword [vtable.CLogImplW.0]
mov ecx, 0x438aac
push 0x433f28
push 4
call dword [eax + 0x3c]
cmp byte [0x438ab9], 0
je 0x40ddab
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 0x40ddcf
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 0x40ddf3
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 0x40de14
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 0x40de35
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 0x40de56
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 0x40de77
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 0x40de98
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 0x40deb3
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 0x40ded4
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 0x40def6
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.0040f7c4
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