Function at 0x478450
Capabilities:
Delete file
Delete registry key
Get common file path
Get startup folder

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49abf4
mov eax, dword fs:[0]
push eax
mov eax, 0x3a78
call fcn.00497d20
mov eax, dword [0x4cc99c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x3a7c], esi
cmp esi, ebx
je 0x4794d0
mov eax, esi
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4784a0
sub eax, edx
sar eax, 1
je 0x4794d0
push str.SoftwareHuofengHuofengGameWorld
lea ecx, [ebp - 0x3a80]
call fcn.004022c0
mov edi, 7
push edi
push str._setup_
lea ecx, [ebp - 0x3a80]
mov dword [ebp - 4], 3
call fcn.00402ab0
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4784e7
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x3a80]
call fcn.00402ab0
lea eax, [ebp - 0x390c]
push esi
push eax
call fcn.0046daa0
push 0x7fe
lea edx, [ebp - 0x100e]
xor ecx, ecx
push ebx
push edx
mov byte [ebp - 4], 4
mov word [ebp - 0x1010], cx
call sub.MSVCR100.dll_memset
add esp, 0x14
push ebx
push 0x1a
lea eax, [ebp - 0x1010]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
xor ecx, ecx
lea eax, [ebp - 0x1010]
mov dword [ebp - 0x3888], edi
mov dword [ebp - 0x388c], ebx
mov word [ebp - 0x389c], cx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x478561
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x1010]
push edx
lea ecx, [ebp - 0x389c]
call fcn.004027c0
xor eax, eax
mov word [ebp - 0x3880], ax
lea eax, [ebp - 0x1010]
mov byte [ebp - 4], 5
mov dword [ebp - 0x386c], edi
mov dword [ebp - 0x3870], ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4785a5
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x1010]
push ecx
lea ecx, [ebp - 0x3880]
call fcn.004027c0
push 0x2a
push 0x4a7360
lea ecx, [ebp - 0x3880]
mov byte [ebp - 4], 6
call fcn.004026a0
push 0x3e
push 0x4a72e0
lea ecx, [ebp - 0x389c]
call fcn.004026a0
cmp dword [ebp - 0x38f8], 8
jb 0x478606
mov edi, dword [ebp - 0x390c]
cmp edi, ebx
jne 0x47860c
xor esi, esi
jmp 0x478637
lea edi, [ebp - 0x390c]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x47861f
xor esi, esi
jmp 0x478637
lea esi, [eax + eax]
mov eax, esi
call fcn.00497dd0
mov eax, esp
push 3
push esi
push edi
push eax
call fcn.00403590
mov esi, eax
sub esp, 0x1c
mov ecx, esp
mov edx, esi
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], ebx
mov dword [ebp - 0x3a84], esp
mov byte [ecx], bl
lea edi, [edx + 1]
mov al, byte [edx]
inc edx
cmp al, bl
jne 0x478653
sub edx, edi
push edx
push esi
call fcn.00403870
lea edx, [ebp - 0x39d0]
push edx
call fcn.0046a110
add esp, 0x20
push 0xffffffffffffffff
push ebx
lea ecx, [ebp - 0x3880]
xor eax, eax
push ecx
mov esi, 7
lea ecx, [ebp - 0x38d4]
mov byte [ebp - 4], 7
mov dword [ebp - 0x38c0], esi
mov dword [ebp - 0x38c4], ebx
mov word [ebp - 0x38d4], ax
call fcn.00402530
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x389c]
xor edx, edx
push eax
lea ecx, [ebp - 0x38b8]
mov byte [ebp - 4], 8
mov dword [ebp - 0x38a4], esi
mov dword [ebp - 0x38a8], ebx
mov word [ebp - 0x38b8], dx
call fcn.00402530
cmp dword [ebp - 0x39bc], 0x10
mov byte [ebp - 4], 9
jb 0x4786ee
mov edi, dword [ebp - 0x39d0]
cmp edi, ebx
jne 0x4786f4
xor eax, eax
jmp 0x47871e
lea edi, [ebp - 0x39d0]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea esi, [eax + 1]
cmp esi, 0x3fffffff
jle 0x47870a
xor eax, eax
jmp 0x47871e
lea eax, [esi + esi]
call fcn.00497dd0
mov eax, esp
push 3
push esi
push edi
push eax
call fcn.00403550
mov ecx, eax
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x478723
sub ecx, esi
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x38b8]
call fcn.004026a0
cmp dword [ebp - 0x39bc], 0x10
jb 0x478756
mov edi, dword [ebp - 0x39d0]
cmp edi, ebx
jne 0x47875c
xor eax, eax
jmp 0x478786
lea edi, [ebp - 0x39d0]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea esi, [eax + 1]
cmp esi, 0x3fffffff
jle 0x478772
xor eax, eax
jmp 0x478786
lea eax, [esi + esi]
call fcn.00497dd0
mov eax, esp
push 3
push esi
push edi
push eax
call fcn.00403550
mov ecx, eax
lea esi, [ecx + 2]
jmp 0x478790
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x478790
sub ecx, esi
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x38d4]
call fcn.004026a0
push 4
push 0x4b08a8
lea ecx, [ebp - 0x38b8]
call fcn.004026a0
push 4
push 0x4b08a8
lea ecx, [ebp - 0x38d4]
call fcn.004026a0
push 0xffffffffffffffff
push ebx
lea ecx, [ebp - 0x390c]
push ecx
lea ecx, [ebp - 0x3880]
call fcn.00402d10
push 4
push 0x4b08a8
lea ecx, [ebp - 0x3880]
call fcn.004026a0
push 0xffffffffffffffff
push ebx
lea edx, [ebp - 0x390c]
push edx
lea ecx, [ebp - 0x389c]
call fcn.00402d10
push 4
push 0x4b08a8
lea ecx, [ebp - 0x389c]
call fcn.004026a0
mov eax, dword [ebp - 0x389c]
mov edi, 8
cmp dword [ebp - 0x3888], edi
jae 0x478837
lea eax, [ebp - 0x389c]
push ebx
push eax
call fcn.004697e0
mov eax, dword [ebp - 0x3880]
add esp, 8
cmp dword [ebp - 0x386c], edi
jae 0x478855
lea eax, [ebp - 0x3880]
push ebx
push eax
call fcn.004697e0
mov eax, dword [ebp - 0x389c]
add esp, 8
cmp dword [ebp - 0x3888], edi
jae 0x478873
lea eax, [ebp - 0x389c]
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
push eax
call esi
mov eax, dword [ebp - 0x3880]
cmp dword [ebp - 0x386c], edi
jae 0x478890
lea eax, [ebp - 0x3880]
push eax
call esi
mov eax, dword [ebp - 0x38d4]
cmp dword [ebp - 0x38c0], edi
jae 0x4788a7
lea eax, [ebp - 0x38d4]
push ebx
push eax
call fcn.004697e0
mov eax, dword [ebp - 0x38b8]
add esp, 8
cmp dword [ebp - 0x38a4], edi
jae 0x4788c5
lea eax, [ebp - 0x38b8]
push ebx
push eax
call fcn.004697e0
mov eax, dword [ebp - 0x38d4]
add esp, 8
cmp dword [ebp - 0x38c0], edi
jae 0x4788e3
lea eax, [ebp - 0x38d4]
push eax
call esi
mov eax, dword [ebp - 0x38b8]
cmp dword [ebp - 0x38a4], edi
jae 0x4788fa
lea eax, [ebp - 0x38b8]
push eax
call esi
push 0x7fe
lea ecx, [ebp - 0x300e]
xor eax, eax
push ebx
push ecx
mov word [ebp - 0x3010], ax
call sub.MSVCR100.dll_memset
add esp, 0xc
push ebx
push 0x10
lea edx, [ebp - 0x3010]
push edx
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
xor eax, eax
mov word [ebp - 0x3944], ax
lea eax, [ebp - 0x3010]
mov dword [ebp - 0x3930], 7
mov dword [ebp - 0x3934], ebx
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x478950
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x3010]
push ecx
lea ecx, [ebp - 0x3944]
call fcn.004027c0
push 1
push 0x4adfcc
lea ecx, [ebp - 0x3944]
mov byte [ebp - 4], 0xa
call fcn.004026a0
push 0xffffffffffffffff
push ebx
lea edx, [ebp - 0x390c]
push edx
lea ecx, [ebp - 0x3944]
call fcn.00402d10
push 4
push 0x4b08a8
lea ecx, [ebp - 0x3944]
call fcn.004026a0
mov eax, dword [ebp - 0x3944]
cmp dword [ebp - 0x3930], edi
jae 0x4789c3
lea eax, [ebp - 0x3944]
push eax
call esi
push 0x7fe
lea ecx, [ebp - 0x280e]
xor eax, eax
push ebx
push ecx
mov word [ebp - 0x2810], ax
call sub.MSVCR100.dll_memset
add esp, 0xc
push ebx
push 0x19
lea edx, [ebp - 0x2810]
push edx
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
xor eax, eax
mov word [ebp - 0x3928], ax
lea eax, [ebp - 0x2810]
mov dword [ebp - 0x3914], 7
mov dword [ebp - 0x3918], ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x478a17
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x2810]
push ecx
lea ecx, [ebp - 0x3928]
call fcn.004027c0
push 1
push 0x4adfcc
lea ecx, [ebp - 0x3928]
mov byte [ebp - 4], 0xb
call fcn.004026a0
push 0xffffffffffffffff
push ebx
lea edx, [ebp - 0x390c]
push edx
lea ecx, [ebp - 0x3928]
call fcn.00402d10
push 4
push 0x4b08a8
lea ecx, [ebp - 0x3928]
call fcn.004026a0
mov eax, dword [ebp - 0x3928]
cmp dword [ebp - 0x3914], edi
jae 0x478a8a
lea eax, [ebp - 0x3928]
push eax
call esi
mov eax, dword [ebp - 0x3a7c]
push str.deskname
push eax
lea ecx, [ebp - 0x3a40]
push ecx
call fcn.004674a0
add esp, 0xc
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0x3a30], ebx
jbe 0x478bcf
lea edx, [ebp - 0x3010]
push edx
lea ecx, [ebp - 0x3864]
call fcn.00402480
push 1
push 0x4adfcc
lea ecx, [ebp - 0x3864]
mov byte [ebp - 4], 0xd
call fcn.004026a0
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x3a40]
push eax
lea ecx, [ebp - 0x3864]
call fcn.00402d10
push 4
push 0x4b08a8
lea ecx, [ebp - 0x3864]
call fcn.004026a0
mov eax, dword [ebp - 0x3864]
cmp dword [ebp - 0x3850], edi
jae 0x478b1b
lea eax, [ebp - 0x3864]
push eax
call esi
lea ecx, [ebp - 0x2810]
push ecx
lea ecx, [ebp - 0x382c]
call fcn.00402480
push 1
push 0x4adfcc
lea ecx, [ebp - 0x382c]
mov byte [ebp - 4], 0xe
call fcn.004026a0
push 0xffffffffffffffff
push ebx
lea edx, [ebp - 0x3a40]
push edx
lea ecx, [ebp - 0x382c]
call fcn.00402d10
push 4
push 0x4b08a8
lea ecx, [ebp - 0x382c]
call fcn.004026a0
mov eax, dword [ebp - 0x382c]
cmp dword [ebp - 0x3818], edi
jae 0x478b81
lea eax, [ebp - 0x382c]
push eax
call esi
cmp dword [ebp - 0x3818], edi
jb 0x478b9b
mov eax, dword [ebp - 0x382c]
push eax
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x3818], 7
mov dword [ebp - 0x381c], ebx
mov word [ebp - 0x382c], cx
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0x3850], edi
jb 0x478bcf
mov edx, dword [ebp - 0x3864]
push edx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, dword [ebp - 0x3a7c]
push str.startmenurunlnk
push eax
lea ecx, [ebp - 0x3a24]
push ecx
call fcn.004674a0
add esp, 0xc
mov eax, dword [ebp - 0x3a24]
mov byte [ebp - 4], 0xf
cmp dword [ebp - 0x3a10], edi
jae 0x478c02
lea eax, [ebp - 0x3a24]
push eax
call esi
mov edx, dword [ebp - 0x3a7c]
push str.startmenudeletelnk
push edx
lea eax, [ebp - 0x3a08]
push eax
call fcn.004674a0
add esp, 0xc
mov eax, dword [ebp - 0x3a08]
mov byte [ebp - 4], 0x10
cmp dword [ebp - 0x39f4], edi
jae 0x478c38
lea eax, [ebp - 0x3a08]
push eax
call esi
push 0x7fe
lea edx, [ebp - 0x80e]
xor ecx, ecx
push ebx
push edx
mov word [ebp - 0x810], cx
call sub.MSVCR100.dll_memset
add esp, 0xc
push ebx
push 0x17
lea eax, [ebp - 0x810]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
xor ecx, ecx
lea eax, [ebp - 0x810]
mov dword [ebp - 0x3968], 7
mov dword [ebp - 0x396c], ebx
mov word [ebp - 0x397c], cx
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x478c90
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x810]
push edx
lea ecx, [ebp - 0x397c]
call fcn.004027c0
push edi
push 0x4b7cb4
lea ecx, [ebp - 0x397c]
mov byte [ebp - 4], 0x11
call fcn.004026a0
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x390c]
push eax
lea ecx, [ebp - 0x397c]
call fcn.00402d10
mov eax, dword [ebp - 0x397c]
cmp dword [ebp - 0x3968], edi
jae 0x478cf0
lea eax, [ebp - 0x397c]
push eax
call fcn.0045b690
push 0x7fe
lea edx, [ebp - 0x200e]
xor ecx, ecx
push ebx
push edx
mov word [ebp - 0x2010], cx
call sub.MSVCR100.dll_memset
add esp, 0x10
push ebx
push 0xb
lea eax, [ebp - 0x2010]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
xor ecx, ecx
lea eax, [ebp - 0x2010]
mov dword [ebp - 0x394c], 7
mov dword [ebp - 0x3950], ebx
mov word [ebp - 0x3960], cx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x478d47
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x2010]
push edx
lea ecx, [ebp - 0x3960]
call fcn.004027c0
push 0x11
push 0x4a758c
lea ecx, [ebp - 0x3960]
mov byte [ebp - 4], 0x12
call fcn.004026a0
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x390c]
push eax
lea ecx, [ebp - 0x3960]
call fcn.00402d10
mov eax, dword [ebp - 0x3960]
cmp dword [ebp - 0x394c], edi
jae 0x478da8
lea eax, [ebp - 0x3960]
push eax
call fcn.0045b690
mov ecx, dword [ebp - 0x3a7c]
push ecx
lea edx, [ebp - 0x3a5c]
push edx
call fcn.0046daa0
add esp, 0xc
mov edx, dword [ebp - 0x3a5c]
mov byte [ebp - 4], 0x13
cmp dword [ebp - 0x3a48], edi
jae 0x478ddc
lea edx, [ebp - 0x3a5c]
xor eax, eax
mov word [ebp - 0x3864], ax
mov eax, edx
mov dword [ebp - 0x3850], 7
mov dword [ebp - 0x3854], ebx
lea esi, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x478e00
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [ebp - 0x3864]
call fcn.004027c0
xor ecx, ecx
lea eax, [ebp - 0x810]
mov byte [ebp - 4], 0x14
mov dword [ebp - 0x3818], 7
mov dword [ebp - 0x381c], ebx
mov word [ebp - 0x382c], cx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x478e42
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x810]
push edx
lea ecx, [ebp - 0x382c]
call fcn.004027c0
lea eax, [ebp - 0x3864]
push eax
lea ecx, [ebp - 0x382c]
push ecx
mov byte [ebp - 4], 0x15
call fcn.0046e440
add esp, 8
cmp dword [ebp - 0x3818], edi
jb 0x478e95
mov edx, dword [ebp - 0x382c]
push edx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor eax, eax
mov dword [ebp - 0x3818], 7
mov dword [ebp - 0x381c], ebx
mov word [ebp - 0x382c], ax
mov byte [ebp - 4], 0x13
cmp dword [ebp - 0x3850], edi
jb 0x478ec9
mov ecx, dword [ebp - 0x3864]
push ecx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
push 0x34
xor edx, edx
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall_
lea ecx, [ebp - 0x39ec]
mov dword [ebp - 0x39d8], 7
mov dword [ebp - 0x39dc], ebx
mov word [ebp - 0x39ec], dx
call fcn.004027c0
mov eax, dword [ebp - 0x3a7c]
push str.uninstallctrl
push eax
lea ecx, [ebp - 0x39b4]
push ecx
mov byte [ebp - 4], 0x16
call fcn.004674a0
add esp, 0xc
mov esi, dword [sym.imp.SHLWAPI.dll_SHDeleteKeyW]
mov byte [ebp - 4], 0x17
cmp dword [ebp - 0x39a4], ebx
jbe 0x478f5d
mov eax, dword [ebp - 0x39b4]
cmp dword [ebp - 0x39a0], edi
jae 0x478f39
lea eax, [ebp - 0x39b4]
push eax
push SysReAllocString
call esi
mov eax, dword [ebp - 0x39b4]
cmp dword [ebp - 0x39a0], edi
jae 0x478f55
lea eax, [ebp - 0x39b4]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call esi
mov edx, dword [ebp - 0x3a7c]
push edx
lea eax, [ebp - 0x3a78]
push eax
call fcn.0046daa0
add esp, 8
mov byte [ebp - 4], 0x18
cmp dword [ebp - 0x3a68], ebx
jbe 0x47901d
push 0xffffffffffffffff
xor ecx, ecx
push ebx
lea edx, [ebp - 0x39ec]
mov word [ebp - 0x3848], cx
push edx
lea ecx, [ebp - 0x3848]
mov dword [ebp - 0x3834], 7
mov dword [ebp - 0x3838], ebx
call fcn.00402530
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x3a78]
push eax
lea ecx, [ebp - 0x3848]
mov byte [ebp - 4], 0x19
call fcn.00402d10
mov eax, dword [ebp - 0x3848]
cmp dword [ebp - 0x3834], edi
jae 0x478fde
lea eax, [ebp - 0x3848]
push eax
push SysReAllocString
call esi
mov eax, dword [ebp - 0x3848]
cmp dword [ebp - 0x3834], edi
jae 0x478ffa
lea eax, [ebp - 0x3848]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call esi
mov byte [ebp - 4], 0x18
cmp dword [ebp - 0x3834], edi
jb 0x47901d
mov ecx, dword [ebp - 0x3848]
push ecx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x39ec]
xor edx, edx
push eax
lea ecx, [ebp - 0x38f0]
mov dword [ebp - 0x38dc], 7
mov dword [ebp - 0x38e0], ebx
mov word [ebp - 0x38f0], dx
call fcn.00402530
mov eax, dword [ebp - 0x3a7c]
mov byte [ebp - 4], 0x1a
lea edx, [eax + 2]
jmp 0x479060
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x479060
mov ecx, dword [ebp - 0x3a7c]
sub eax, edx
sar eax, 1
push eax
push ecx
lea ecx, [ebp - 0x38f0]
call fcn.004026a0
mov eax, dword [ebp - 0x38f0]
cmp dword [ebp - 0x38dc], edi
jae 0x479096
lea eax, [ebp - 0x38f0]
push eax
push SysReAllocString
call esi
mov eax, dword [ebp - 0x38f0]
cmp dword [ebp - 0x38dc], edi
jae 0x4790b2
lea eax, [ebp - 0x38f0]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call esi
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x39ec]
xor edx, edx
push eax
lea ecx, [ebp - 0x3998]
mov dword [ebp - 0x3984], 7
mov dword [ebp - 0x3988], ebx
mov word [ebp - 0x3998], dx
call fcn.00402530
push 1
push 0x4adfcc
lea ecx, [ebp - 0x3998]
mov byte [ebp - 4], 0x1b
call fcn.004026a0
mov eax, dword [ebp - 0x3a7c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x479107
mov ecx, dword [ebp - 0x3a7c]
sub eax, edx
sar eax, 1
push eax
push ecx
lea ecx, [ebp - 0x3998]
call fcn.004026a0
mov eax, dword [ebp - 0x3998]
cmp dword [ebp - 0x3984], edi
jae 0x47913d
lea eax, [ebp - 0x3998]
push eax
push SysReAllocString
call esi
mov edx, dword [ebp - 0x3a80]
push edx
push SysReAllocString
call esi
cmp dword [ebp - 0x3984], edi
jb 0x47916a
mov eax, dword [ebp - 0x3998]
push eax
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor ecx, ecx
mov esi, 7
mov dword [ebp - 0x3984], esi
mov dword [ebp - 0x3988], ebx
mov word [ebp - 0x3998], cx
cmp dword [ebp - 0x38dc], edi
jb 0x47919b
mov edx, dword [ebp - 0x38f0]
push edx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor eax, eax
mov dword [ebp - 0x38dc], esi
mov dword [ebp - 0x38e0], ebx
mov word [ebp - 0x38f0], ax
cmp dword [ebp - 0x3a64], edi
jb 0x4791c7
mov ecx, dword [ebp - 0x3a78]
push ecx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor edx, edx
mov dword [ebp - 0x3a64], esi
mov dword [ebp - 0x3a68], ebx
mov word [ebp - 0x3a78], dx
cmp dword [ebp - 0x39a0], edi
jb 0x4791f3
mov eax, dword [ebp - 0x39b4]
push eax
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x39a0], esi
mov dword [ebp - 0x39a4], ebx
mov word [ebp - 0x39b4], cx
cmp dword [ebp - 0x39d8], edi
jb 0x47921f
mov edx, dword [ebp - 0x39ec]
push edx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor eax, eax
mov dword [ebp - 0x39d8], esi
mov dword [ebp - 0x39dc], ebx
mov word [ebp - 0x39ec], ax
cmp dword [ebp - 0x3a48], edi
jb 0x47924b
mov ecx, dword [ebp - 0x3a5c]
push ecx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor edx, edx
mov dword [ebp - 0x3a48], esi
mov dword [ebp - 0x3a4c], ebx
mov word [ebp - 0x3a5c], dx
cmp dword [ebp - 0x394c], edi
jb 0x479277
mov eax, dword [ebp - 0x3960]
push eax
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x394c], esi
mov dword [ebp - 0x3950], ebx
mov word [ebp - 0x3960], cx
cmp dword [ebp - 0x3968], edi
jb 0x4792a3
mov edx, dword [ebp - 0x397c]
push edx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor eax, eax
mov dword [ebp - 0x3968], esi
mov dword [ebp - 0x396c], ebx
mov word [ebp - 0x397c], ax
cmp dword [ebp - 0x39f4], edi
jb 0x4792cf
mov ecx, dword [ebp - 0x3a08]
push ecx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor edx, edx
mov dword [ebp - 0x39f4], esi
mov dword [ebp - 0x39f8], ebx
mov word [ebp - 0x3a08], dx
cmp dword [ebp - 0x3a10], edi
jb 0x4792fb
mov eax, dword [ebp - 0x3a24]
push eax
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x3a10], esi
mov dword [ebp - 0x3a14], ebx
mov word [ebp - 0x3a24], cx
cmp dword [ebp - 0x3a2c], edi
jb 0x479327
mov edx, dword [ebp - 0x3a40]
push edx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor eax, eax
mov dword [ebp - 0x3a2c], esi
mov dword [ebp - 0x3a30], ebx
mov word [ebp - 0x3a40], ax
cmp dword [ebp - 0x3914], edi
jb 0x479353
mov ecx, dword [ebp - 0x3928]
push ecx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor edx, edx
mov dword [ebp - 0x3914], esi
mov dword [ebp - 0x3918], ebx
mov word [ebp - 0x3928], dx
cmp dword [ebp - 0x3930], edi
jb 0x47937f
mov eax, dword [ebp - 0x3944]
push eax
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x3930], esi
mov dword [ebp - 0x3934], ebx
mov word [ebp - 0x3944], cx
cmp dword [ebp - 0x38a4], edi
jb 0x4793ab
mov edx, dword [ebp - 0x38b8]
push edx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor eax, eax
mov dword [ebp - 0x38a4], esi
mov dword [ebp - 0x38a8], ebx
mov word [ebp - 0x38b8], ax
cmp dword [ebp - 0x38c0], edi
jb 0x4793d7
mov ecx, dword [ebp - 0x38d4]
push ecx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor edx, edx
cmp dword [ebp - 0x39bc], 0x10
mov dword [ebp - 0x38c0], esi
mov dword [ebp - 0x38c4], ebx
mov word [ebp - 0x38d4], dx
jb 0x479404
mov eax, dword [ebp - 0x39d0]
push eax
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [ebp - 0x39bc], 0xf
mov dword [ebp - 0x39c0], ebx
mov byte [ebp - 0x39d0], bl
cmp dword [ebp - 0x386c], edi
jb 0x479431
mov ecx, dword [ebp - 0x3880]
push ecx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor edx, edx
mov dword [ebp - 0x386c], esi
mov dword [ebp - 0x3870], ebx
mov word [ebp - 0x3880], dx
cmp dword [ebp - 0x3888], edi
jb 0x47945d
mov eax, dword [ebp - 0x389c]
push eax
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x3888], esi
mov dword [ebp - 0x388c], ebx
mov word [ebp - 0x389c], cx
cmp dword [ebp - 0x38f8], edi
jb 0x479489
mov edx, dword [ebp - 0x390c]
push edx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor eax, eax
mov word [ebp - 0x390c], ax
mov eax, dword [ebp - 0x3a80]
add eax, 0xfffffff0
mov dword [ebp - 0x38f8], esi
mov dword [ebp - 0x38fc], ebx
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4796f4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4796f4
call fcn.00475f70
push 0x7fe
lea edx, [ebp - 0x380e]
xor ecx, ecx
push ebx
push edx
mov word [ebp - 0x3810], cx
call sub.MSVCR100.dll_memset
mov esi, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
add esp, 0xc
push ebx
push 0x17
lea eax, [ebp - 0x3810]
push eax
push ebx
call esi
xor ecx, ecx
lea eax, [ebp - 0x3810]
mov dword [ebp - 0x3850], 7
mov dword [ebp - 0x3854], ebx
mov word [ebp - 0x3864], cx
lea edx, [eax + 2]
jmp 0x479530
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x479530
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x3810]
push edx
lea ecx, [ebp - 0x3864]
call fcn.004027c0
mov edi, 8
push edi
push 0x4b7cb4
lea ecx, [ebp - 0x3864]
mov dword [ebp - 4], ebx
call fcn.004026a0
mov eax, dword [ebp - 0x3864]
cmp dword [ebp - 0x3850], edi
jae 0x47957f
lea eax, [ebp - 0x3864]
push eax
call fcn.0045b690
push 0x7fe
lea ecx, [ebp - 0x180e]
xor eax, eax
push ebx
push ecx
mov word [ebp - 0x1810], ax
call sub.MSVCR100.dll_memset
add esp, 0x10
push ebx
push 0xb
lea edx, [ebp - 0x1810]
push edx
push ebx
call esi
xor eax, eax
mov word [ebp - 0x382c], ax
mov esi, 7
lea eax, [ebp - 0x1810]
mov dword [ebp - 0x3818], esi
mov dword [ebp - 0x381c], ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4795d3
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x1810]
push ecx
lea ecx, [ebp - 0x382c]
call fcn.004027c0
push 0x11
push 0x4a758c
lea ecx, [ebp - 0x382c]
mov byte [ebp - 4], 1
call fcn.004026a0
mov eax, dword [ebp - 0x382c]
cmp dword [ebp - 0x3818], edi
jae 0x47961f
lea eax, [ebp - 0x382c]
push eax
call fcn.0045b690
add esp, 4
push 0x34
xor edx, edx
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall_
lea ecx, [ebp - 0x3848]
mov dword [ebp - 0x3834], esi
mov dword [ebp - 0x3838], ebx
mov word [ebp - 0x3848], dx
call fcn.004027c0
push 0x10
push 0x4a5348
lea ecx, [ebp - 0x3848]
mov byte [ebp - 4], 2
call fcn.004026a0
mov eax, dword [ebp - 0x3848]
cmp dword [ebp - 0x3834], edi
jae 0x479679
lea eax, [ebp - 0x3848]
push eax
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHDeleteKeyW]
cmp dword [ebp - 0x3834], edi
jb 0x47969c
mov eax, dword [ebp - 0x3848]
push eax
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x3834], esi
mov dword [ebp - 0x3838], ebx
mov word [ebp - 0x3848], cx
cmp dword [ebp - 0x3818], edi
jb 0x4796c8
mov edx, dword [ebp - 0x382c]
push edx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
xor eax, eax
mov dword [ebp - 0x3818], esi
mov dword [ebp - 0x381c], ebx
mov word [ebp - 0x382c], ax
cmp dword [ebp - 0x3850], edi
jb 0x4796f4
mov ecx, dword [ebp - 0x3864]
push ecx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
lea esp, [ebp - 0x3a94]
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.00497792
mov esp, ebp
pop ebp
ret