Function at 0x4042a3
Capabilities:
Get common file path
Get disk information
Persist via run registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x28f4
call fcn.0040cf80
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push edi
mov edi, 0x4145c4
lea eax, [ebp - 0xde0]
push edi
push eax
call esi
lea eax, [ebp - 0x11e4]
push edi
push eax
call esi
push dword [ebp + 8]
mov edi, dword [ebp + 0xc]
push edi
call esi
push edi
call fcn.0040bc53
cmp eax, edi
pop ecx
jbe 0x4042ea
and byte [eax - 1], 0
xor ebx, ebx
push ebx
push edi
call fcn.0040ae88
pop ecx
pop ecx
push 0x41410c
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov edi, dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
push 0x4145c0
mov dword [ebp - 0x2c], ebx
call edi
push 0x4145bc
mov dword [ebp - 0x24], eax
call edi
push 0x10c
mov dword [ebp - 0x20], eax
call fcn.0040bd85
mov edx, dword [0x417ca8]
pop ecx
mov ecx, dword [0x417830]
push dword [ebp + 8]
mov dword [ecx + edx*4], eax
mov eax, dword [0x417830]
mov ecx, dword [0x417ca8]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x104], ebx
mov eax, dword [0x417830]
mov ecx, dword [0x417ca8]
mov eax, dword [eax + ecx*4]
mov word [eax + 0x108], bx
mov eax, dword [0x417830]
mov ecx, dword [0x417ca8]
mov eax, dword [eax + ecx*4]
mov word [eax + 0x10a], 0x7fff
mov eax, dword [0x417830]
mov ecx, dword [0x417ca8]
mov edi, dword [eax + ecx*4]
push edi
call esi
push 1
push edi
call fcn.0040ae88
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
pop ecx
pop ecx
push edi
call ebx
lea eax, [eax + edi - 1]
cmp eax, edi
jbe 0x4043b2
cmp byte [eax], 0x5c
je 0x4043b7
and byte [eax], 0
dec eax
jmp 0x4043a3
cmp byte [eax], 0x5c
jne 0x4043bb
and byte [eax + 1], 0
push edi
call ebx
cmp eax, 3
jg 0x4043c6
and byte [edi], 0
and dword [ebp - 4], 0
mov ebx, dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov dword [ebp - 8], 1
cmp dword [ebp - 4], 0
je 0x4043f1
lea eax, [ebp - 0x9dc]
push 0x100
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
jmp 0x4043ff
lea eax, [ebp - 0x9dc]
push 0x104
push eax
call ebx
lea eax, [ebp - 0x9dc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp byte [ebp + eax - 0x9dd], 0x5c
je 0x404428
lea eax, [ebp - 0x9dc]
push 0x41410c
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [ebp - 0x9dc]
push eax
push edi
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x404447
and dword [ebp - 8], eax
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x4043d7
lea eax, [ebp - 0x1cf4]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea eax, [ebp - 0x17e8]
push 0x104
push eax
call ebx
lea eax, [ebp - 0x17e8]
push eax
lea eax, [ebp - 0x1bf0]
push eax
call esi
lea eax, [ebp - 0x1bf0]
push str.WIN32S
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp dword [0x4177dc], 1
jne 0x4044ec
push 0x104
push dword [0x417870]
call ebx
push dword [0x417870]
lea eax, [ebp - 0x1aec]
push eax
call esi
lea eax, [ebp - 0x1aec]
push 0x41410c
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [ebp - 0x1aec]
push eax
push edi
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x4044fb
xor ebx, ebx
mov dword [ebp - 8], ebx
jmp 0x4044fd
lea eax, [ebp - 0x17e8]
push eax
push dword [0x417870]
call esi
xor ebx, ebx
cmp dword [ebp - 8], ebx
je 0x40450d
cmp byte [edi], 0
je 0x40450d
inc dword [0x417ca8]
push ebx
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll__lopen]
cmp eax, 0xffffffff
mov dword [ebp + 8], eax
jne 0x404584
mov esi, 0x100
lea eax, [ebp - 0x9dc]
push esi
push eax
push 3
push dword [0x417bb0]
call fcn.0040b2b1
lea eax, [ebp - 0xbdc]
push esi
push eax
push 2
push dword [0x417bb0]
call fcn.0040b2b1
mov eax, dword [0x4177bc]
add esp, 0x20
cmp eax, ebx
je 0x404561
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
lea eax, [ebp - 0xbdc]
push ebx
push eax
lea eax, [ebp - 0x9dc]
push eax
push dword [0x4177c0]
call dword [sym.imp.USER32.dll_MessageBoxA]
push 1
pop eax
jmp 0x4047f0
mov edi, dword [sym.imp.KERNEL32.dll__llseek]
push 2
push ebx
push dword [ebp + 8]
call edi
push ebx
push ebx
push dword [ebp + 8]
mov dword [0x417bec], eax
call edi
or dword [ebp - 0x30], 0xffffffff
push ebx
push dword [ebp + 8]
mov edi, 0x800
lea eax, [ebp - 0x9dc]
push edi
push eax
call fcn.00407108
add esp, 0x10
cmp byte [ebp - 0x9d8], 0x20
jne 0x4045ce
mov dword [0x417844], 1
movzx eax, word [0x417cb4]
mov ecx, dword [0x4177d0]
push str.
mov dword [ecx + eax*4], ebx
inc word [0x417cb4]
movzx eax, word [0x417cb4]
mov ecx, dword [0x4177d0]
mov dword [ecx + eax*4], ebx
and byte [ebp - 0x9d8], 0
lea eax, [ebp - 0x9dc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x404785
push ebx
lea eax, [ebp - 0x9dc]
push dword [ebp + 8]
push edi
push eax
call fcn.00407108
and byte [ebp - 0x9d6], 0
add esp, 0x10
lea eax, [ebp - 0x9dc]
push str.Title:
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x404650
cmp byte [ebp - 0x9dc], 0
jne 0x404616
cmp byte [ebp - 0x9dc], 0
je 0x404785
lea eax, [ebp - 0x9dc]
push eax
call fcn.0040c3f6
pop ecx
lea eax, [ebp - 0x9dc]
push ebx
push dword [ebp + 8]
push edi
push eax
call fcn.00407108
add esp, 0x10
cmp byte [ebp - 0x9dc], 0
je 0x4047e5
xor ebx, ebx
cmp dword [0x4177bc], ebx
je 0x404741
push 1
push ebx
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll__llseek]
cmp dword [ebp - 0x30], eax
mov dword [0x417c2c], eax
je 0x404741
push 0xef6
mov dword [ebp - 0x30], eax
push dword [0x4177bc]
call dword [sym.imp.USER32.dll_GetDlgItem]
cmp eax, ebx
je 0x404741
lea ecx, [ebp - 0x40]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0x40]
mov edi, dword [sym.imp.USER32.dll_ScreenToClient]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1c]
push eax
push dword [0x4177bc]
call edi
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1c]
push eax
push dword [0x4177bc]
call edi
mov eax, dword [ebp - 0x1c]
push ebx
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x40]
push eax
push dword [0x4177bc]
call dword [sym.imp.USER32.dll_InvalidateRect]
push dword [0x4177bc]
call dword [sym.imp.USER32.dll_UpdateWindow]
lea eax, [ebp - 0x9dc]
push str.Non_System_File:
push eax
mov dword [ebp - 0xc], 1
call fcn.00410f40
pop ecx
test eax, eax
pop ecx
jne 0x4047f5
push ebx
mov edi, 0x800
push dword [ebp + 8]
lea eax, [ebp - 0x9dc]
mov dword [ebp - 0x10], 1
push edi
push eax
call fcn.00407108
add esp, 0x10
jmp 0x4047fd
mov esi, 0x100
lea eax, [ebp - 0x9dc]
push esi
push eax
push 4
push dword [0x417bb0]
call fcn.0040b2b1
lea eax, [ebp - 0xbdc]
push esi
push eax
push 2
push dword [0x417bb0]
call fcn.0040b2b1
mov eax, dword [0x4177bc]
add esp, 0x20
cmp eax, ebx
je 0x4047c7
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
lea eax, [ebp - 0xbdc]
push ebx
push eax
lea eax, [ebp - 0x9dc]
push eax
push dword [0x4177c0]
call dword [sym.imp.USER32.dll_MessageBoxA]
push 1
pop ebx
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll__lclose]
mov eax, ebx
pop edi
pop esi
pop ebx
leave
ret
mov dword [ebp - 0x10], ebx
mov edi, 0x800
lea eax, [ebp - 0x9dc]
push str.Shared_DLL_counter_ignored:
push eax
call fcn.00410f40
pop ecx
test eax, eax
pop ecx
jne 0x404831
push ebx
lea eax, [ebp - 0x9dc]
push dword [ebp + 8]
mov dword [ebp - 4], 1
push edi
push eax
call fcn.00407108
add esp, 0x10
jmp 0x404834
mov dword [ebp - 4], ebx
push 0xb
lea eax, [ebp - 0x9dc]
push str.File_Copy:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
je 0x40644d
push 0xc
lea eax, [ebp - 0x9dc]
push str.Shell_Link:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
je 0x40644d
push 0x10
lea eax, [ebp - 0x9dc]
push str.File_Overwrite:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
je 0x40644d
push 0xb
lea eax, [ebp - 0x9dc]
push str.RegDB_Key:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x404d95
lea eax, [ebp - 0x9d1]
push eax
lea eax, [ebp - 0xfe0]
push eax
call esi
push ebx
lea eax, [ebp - 0x9dc]
push dword [ebp + 8]
push edi
push eax
call fcn.00407108
push 0xb
lea eax, [ebp - 0x9dc]
push str.RegDB_Val:
push eax
call fcn.00410e90
add esp, 0x1c
test eax, eax
jne 0x406f96
lea eax, [ebp - 0x9d1]
push eax
lea eax, [ebp - 0x28f4]
push eax
call esi
push 0
lea eax, [ebp - 0x9dc]
push dword [ebp + 8]
push 0x800
push eax
call fcn.00407108
push 0xb
lea eax, [ebp - 0x9dc]
push str.RegDB_Val:
push eax
call fcn.00410e90
add esp, 0x1c
test eax, eax
je 0x4048fb
and byte [ebp - 0x19e8], 0
push 0xc
lea eax, [ebp - 0x9dc]
xor ebx, ebx
push str.RegDB_Name:
push eax
mov dword [ebp - 4], ebx
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x40497c
lea eax, [ebp - 0x9d0]
push eax
lea eax, [ebp - 0x19e8]
push eax
call esi
push ebx
mov edi, 0x800
push dword [ebp + 8]
lea eax, [ebp - 0x9dc]
push edi
push eax
call fcn.00407108
add esp, 0x10
jmp 0x404981
mov edi, 0x800
push 0xc
lea eax, [ebp - 0x9dc]
push str.RegDB_Type:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x4049bf
lea eax, [ebp - 0x9d0]
push eax
call fcn.0040cda6
push 0
mov dword [ebp - 4], eax
push dword [ebp + 8]
lea eax, [ebp - 0x9dc]
push edi
push eax
call fcn.00407108
add esp, 0x14
push 0xc
lea eax, [ebp - 0x9dc]
push str.RegDB_Root:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x404a0e
lea eax, [ebp - 0x9d0]
push eax
call fcn.0040cda6
push 0
mov ebx, eax
push dword [ebp + 8]
lea eax, [ebp - 0x9dc]
push edi
push eax
call fcn.00407108
add esp, 0x14
cmp ebx, 1
jne 0x404a0e
cmp dword [0x4178bc], 0
jne 0x406f96
push ebx
lea eax, [ebp - 0x50]
push 0x4144f8
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
push 0x10
call fcn.0040bd85
mov ecx, dword [0x41787c]
mov edx, dword [0x4177e4]
add esp, 0x10
mov dword [ecx + edx*4], eax
mov eax, dword [0x41787c]
mov ecx, dword [0x4177e4]
mov edi, dword [eax + ecx*4]
inc dword [0x4177e4]
lea eax, [ebp - 0x28f4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040bd85
pop ecx
mov dword [edi + 0xc], eax
lea ecx, [ebp - 0x28f4]
push ecx
push eax
call esi
and dword [edi], 0
and dword [edi + 8], 0
push 0xb
lea eax, [ebp - 0x9dc]
push str.RegDB_Old:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x404c8d
lea eax, [ebp - 0x50]
mov dword [edi], 1
mov ecx, dword [0x417c1c]
push eax
lea eax, [ebp - 0x19e8]
push eax
lea eax, [ebp - 0xfe0]
push eax
mov eax, dword [0x417ba4]
push ecx
push 0x1224
push dword [eax]
lea eax, [eax + ecx*4]
push eax
call fcn.0040bea7
add esp, 0x1c
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x404c17
mov eax, dword [0x417ba4]
mov ecx, dword [0x417c1c]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x121c], 0
mov eax, dword [0x417ba4]
mov ecx, dword [0x417c1c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 4]
mov dword [eax + 0x1218], ecx
mov eax, dword [0x417ba4]
mov ecx, dword [0x417c1c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x1214], ebx
mov eax, dword [0x417ba4]
mov ecx, dword [0x417c1c]
mov eax, dword [eax + ecx*4]
mov cx, word [0x417cb4]
mov word [eax + 0x1220], cx
mov ecx, dword [0x417c1c]
lea eax, [ebp - 0xfe0]
push eax
mov eax, dword [0x417ba4]
mov eax, dword [eax + ecx*4]
add eax, 8
push eax
call esi
mov ecx, dword [0x417c1c]
lea eax, [ebp - 0x19e8]
push eax
mov eax, dword [0x417ba4]
mov eax, dword [eax + ecx*4]
add eax, 0x108
push eax
call esi
mov ecx, dword [0x417c1c]
lea eax, [ebp - 0x50]
push eax
mov eax, dword [0x417ba4]
mov eax, dword [eax + ecx*4]
add eax, 0x208
push eax
call esi
mov eax, dword [0x417c1c]
mov ecx, dword [0x417ba4]
mov ebx, dword [ecx + eax*4]
add ebx, 0x214
lea eax, [ebp - 0x9d1]
push eax
push ebx
call esi
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push 0
lea ebx, [ebx + eax + 1]
push dword [ebp + 8]
lea eax, [ebp - 0x9dc]
push 0x800
push eax
call fcn.00407108
push 0xb
lea eax, [ebp - 0x9dc]
push str.RegDB_Old:
push eax
call fcn.00410e90
add esp, 0x1c
test eax, eax
je 0x404b96
and byte [ebx], 0
mov eax, dword [0x417ba4]
mov ecx, dword [0x417c1c]
mov eax, dword [eax + ecx*4]
lea ecx, [eax + 0x214]
add eax, 0xa14
push ecx
push eax
call esi
mov eax, dword [0x417c1c]
mov ecx, dword [0x417ba4]
mov eax, dword [ecx + eax*4]
mov dword [edi + 8], eax
inc dword [0x417c1c]
jmp 0x406f96
lea ebx, [ebp - 0x20f4]
lea eax, [ebp - 0x9d1]
push eax
push ebx
call esi
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push 0
lea ebx, [ebx + eax + 1]
push dword [ebp + 8]
lea eax, [ebp - 0x9dc]
push 0x800
push eax
call fcn.00407108
push 0xb
lea eax, [ebp - 0x9dc]
push str.RegDB_Old:
push eax
call fcn.00410e90
add esp, 0x1c
test eax, eax
je 0x404c1d
and byte [ebx], 0
lea eax, [ebp - 0x20f4]
push eax
mov eax, dword [ebp - 0xc]
add eax, 0xa14
push eax
call esi
mov eax, dword [ebp - 0xc]
mov cx, word [0x417cb4]
mov word [eax + 0x1220], cx
jmp 0x404d8d
mov eax, dword [ebp - 4]
mov dword [edi + 4], eax
mov ecx, dword [0x417cbc]
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x19e8]
push eax
lea eax, [ebp - 0xfe0]
push eax
mov eax, dword [0x4177fc]
push ecx
push 0x224
push dword [eax]
lea eax, [eax + ecx*4]
push eax
call fcn.0040bea7
add esp, 0x1c
test eax, eax
jne 0x404d7f
mov eax, dword [0x4177fc]
mov ecx, dword [0x417cbc]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x21c], 0
mov eax, dword [0x4177fc]
mov ecx, dword [0x417cbc]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x218], ebx
mov eax, dword [0x4177fc]
mov ecx, dword [0x417cbc]
mov eax, dword [eax + ecx*4]
mov cx, word [0x417cb4]
mov word [eax + 0x220], cx
mov ecx, dword [0x417cbc]
lea eax, [ebp - 0xfe0]
push eax
mov eax, dword [0x4177fc]
mov eax, dword [eax + ecx*4]
add eax, 8
push eax
call esi
mov ecx, dword [0x417cbc]
lea eax, [ebp - 0x19e8]
push eax
mov eax, dword [0x4177fc]
mov eax, dword [eax + ecx*4]
add eax, 0x10c
push eax
call esi
mov ecx, dword [0x417cbc]
lea eax, [ebp - 0x50]
push eax
mov eax, dword [0x4177fc]
mov eax, dword [eax + ecx*4]
add eax, 0x20c
push eax
call esi
mov eax, dword [0x417cbc]
mov ecx, dword [0x4177fc]
mov eax, dword [ecx + eax*4]
mov dword [edi + 8], eax
inc dword [0x417cbc]
jmp 0x406f96
mov cx, word [0x417cb4]
mov word [eax + 0x220], cx
mov dword [edi + 8], eax
jmp 0x406f96
push 0xb
lea eax, [ebp - 0x9dc]
push str.File_Edit:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x404fb8
lea eax, [ebp - 0x9d1]
push eax
lea eax, [ebp - 0x10e0]
push eax
call esi
push ebx
lea eax, [ebp - 0x9dc]
push dword [ebp + 8]
push edi
push eax
call fcn.00407108
and byte [ebp - 0x16e4], 0
push 0xd
lea eax, [ebp - 0x9dc]
push str.Backup_Copy:
push eax
call fcn.00410e90
add esp, 0x1c
test eax, eax
jne 0x404e07
lea eax, [ebp - 0x9cf]
push eax
lea eax, [ebp - 0x16e4]
push eax
call esi
jmp 0x404e0a
mov dword [ebp - 0xc], ebx
push 2
lea eax, [ebp - 0x10e0]
pop edi
push edi
push 0x4144cc
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x404e2f
cmp dword [ebp - 0x24], edi
je 0x406f77
push edi
lea eax, [ebp - 0x10e0]
push 0x4144c8
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x404e51
cmp dword [ebp - 0x20], edi
je 0x406f77
cmp byte [ebp - 0x16e4], 0
je 0x406f77
lea eax, [ebp - 0x10e0]
push 0
push eax
call fcn.0040b027
pop ecx
test eax, eax
pop ecx
jne 0x406f77
lea eax, [ebp - 0x10e0]
push eax
lea eax, [ebp - 0xbdc]
push eax
call esi
xor ebx, ebx
xor edi, edi
cmp dword [0x417bd0], ebx
jle 0x404ebd
mov eax, dword [0x4177cc]
push dword [eax + edi*4]
lea eax, [ebp - 0x10e0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
mov eax, dword [0x417bd0]
je 0x404eb5
inc edi
cmp edi, eax
jl 0x404e92
cmp edi, eax
jl 0x404f82
push 0x20a
call fcn.0040bd85
mov edx, dword [0x4177cc]
pop ecx
mov ecx, dword [0x417bd0]
mov dword [edx + ecx*4], eax
cmp dword [0x417844], ebx
je 0x404ef8
mov ecx, dword [0x4177cc]
lea eax, [ebp - 0x10e0]
push eax
mov eax, dword [0x417bd0]
push dword [ecx + eax*4]
call esi
jmp 0x404f13
mov eax, dword [0x417bd0]
mov ecx, dword [0x4177cc]
push dword [ecx + eax*4]
lea eax, [ebp - 0x10e0]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
cmp dword [0x417844], ebx
je 0x404f3a
mov ecx, dword [0x4177cc]
lea eax, [ebp - 0x16e4]
push eax
mov eax, dword [0x417bd0]
mov eax, dword [ecx + eax*4]
add eax, 0x104
push eax
call esi
jmp 0x404f5b
mov eax, dword [0x417bd0]
mov ecx, dword [0x4177cc]
mov eax, dword [ecx + eax*4]
add eax, 0x104
push eax
lea eax, [ebp - 0x16e4]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
mov eax, dword [0x417bd0]
mov ecx, dword [0x4177cc]
mov eax, dword [ecx + eax*4]
mov cx, word [0x417cb4]
mov word [eax + 0x208], cx
inc dword [0x417bd0]
jmp 0x406f77
mov ecx, dword [0x4177cc]
mov dx, word [0x417cb4]
mov eax, edi
shl eax, 2
mov ecx, dword [eax + ecx]
mov word [ecx + 0x208], dx
lea ecx, [ebp - 0x16e4]
push ecx
mov ecx, dword [0x4177cc]
mov eax, dword [eax + ecx]
add eax, 0x104
jmp 0x406ec8
push 0x10
lea eax, [ebp - 0x9dc]
push str.Create_Service:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x40508e
xor edi, edi
cmp dword [0x417ba0], ebx
jle 0x405007
mov eax, dword [0x417cb8]
push dword [eax + edi*4]
lea eax, [ebp - 0x9cc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
mov eax, dword [0x417ba0]
je 0x405003
inc edi
cmp edi, eax
jl 0x404fe0
cmp edi, eax
jl 0x405073
push 0x10c
call fcn.0040bd85
mov edx, dword [0x417ba0]
pop ecx
mov ecx, dword [0x417cb8]
mov dword [ecx + edx*4], eax
mov eax, dword [0x417cb8]
mov ecx, dword [0x417ba0]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x104], ebx
mov eax, dword [0x417cb8]
mov ecx, dword [0x417ba0]
mov eax, dword [eax + ecx*4]
mov cx, word [0x417cb4]
mov word [eax + 0x108], cx
mov ecx, dword [0x417cb8]
lea eax, [ebp - 0x9cc]
push eax
mov eax, dword [0x417ba0]
push dword [ecx + eax*4]
call esi
inc dword [0x417ba0]
jmp 0x406f7d
mov eax, dword [0x417cb8]
mov cx, word [0x417cb4]
mov eax, dword [eax + edi*4]
mov word [eax + 0x108], cx
jmp 0x406f7d
push 0xc
lea eax, [ebp - 0x9dc]
push str.Add_Device:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x40513d
xor edi, edi
cmp dword [0x417bd4], ebx
jle 0x4050f2
lea eax, [ebp - 0x9d0]
push eax
mov eax, dword [0x417818]
mov eax, dword [eax + edi*4]
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x4050e9
mov eax, dword [0x417818]
mov cx, word [0x417cb4]
mov eax, dword [eax + edi*4]
mov word [eax + 0x26e], cx
inc edi
cmp edi, dword [0x417bd4]
jl 0x4050b6
xor edi, edi
cmp dword [0x4178a0], ebx
jle 0x406f7d
lea eax, [ebp - 0x9d0]
push eax
mov eax, dword [0x417c34]
push dword [eax + edi*4]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x40512f
mov eax, dword [0x417c34]
mov cx, word [0x417cb4]
mov eax, dword [eax + edi*4]
mov word [eax + 0x266], cx
inc edi
cmp edi, dword [0x4178a0]
jl 0x405100
jmp 0x406f7d
push 0xf
lea eax, [ebp - 0x9dc]
push str.Self_Register:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x40524c
lea eax, [ebp - 0x9cd]
push eax
lea eax, [ebp - 0xbdc]
push eax
call esi
lea eax, [ebp - 0xbdc]
push 1
push eax
call fcn.0040ae88
pop ecx
xor edi, edi
cmp dword [0x417bd4], ebx
pop ecx
jle 0x4051e1
mov eax, dword [0x417818]
mov eax, dword [eax + edi*4]
add eax, 8
push eax
lea eax, [ebp - 0xfe0]
push eax
call esi
lea eax, [ebp - 0xfe0]
push 1
push eax
call fcn.0040ae88
pop ecx
lea eax, [ebp - 0xbdc]
pop ecx
push eax
lea eax, [ebp - 0xfe0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x4051d8
mov eax, dword [0x417818]
mov cx, word [0x417cb4]
mov eax, dword [eax + edi*4]
mov word [eax + 0x26c], cx
inc edi
cmp edi, dword [0x417bd4]
jl 0x405185
xor edi, edi
cmp dword [0x4178a0], ebx
jle 0x406f7d
mov eax, dword [0x417c34]
push dword [eax + edi*4]
lea eax, [ebp - 0xfe0]
push eax
call esi
lea eax, [ebp - 0xfe0]
push 1
push eax
call fcn.0040ae88
pop ecx
lea eax, [ebp - 0xbdc]
pop ecx
push eax
lea eax, [ebp - 0xfe0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x40523e
mov eax, dword [0x417c34]
mov cx, word [0x417cb4]
mov eax, dword [eax + edi*4]
mov word [eax + 0x264], cx
inc edi
cmp edi, dword [0x4178a0]
jl 0x4051ef
jmp 0x406f7d
push 9
lea eax, [ebp - 0x9dc]
push str.INI_New:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x405421
push ebx
lea eax, [ebp - 0x9dc]
push dword [ebp + 8]
push edi
push eax
call fcn.00407108
push 0xa
lea eax, [ebp - 0x9dc]
push str.INI_File:
push eax
call fcn.00410e90
add esp, 0x1c
test eax, eax
jne 0x406f96
push 2
lea eax, [ebp - 0x9d2]
pop edi
push edi
push 0x4144cc
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x4052be
cmp dword [ebp - 0x24], edi
je 0x4053d2
push edi
lea eax, [ebp - 0x9d2]
push 0x4144c8
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x4052e0
cmp dword [ebp - 0x20], edi
je 0x4053d2
xor ebx, ebx
lea eax, [ebp - 0x9d2]
push ebx
push eax
call fcn.0040b027
pop ecx
test eax, eax
pop ecx
jne 0x4053d2
xor edi, edi
cmp dword [0x4178ac], ebx
jle 0x40532e
mov eax, dword [0x4177d4]
push dword [eax + edi*4]
lea eax, [ebp - 0x9d2]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
mov eax, dword [0x4178ac]
je 0x405326
inc edi
cmp edi, eax
jl 0x405303
cmp edi, eax
jl 0x4053bc
push 0x10c
call fcn.0040bd85
mov edx, dword [0x4178ac]
pop ecx
mov ecx, dword [0x4177d4]
mov dword [ecx + edx*4], eax
mov eax, dword [0x4178ac]
mov ecx, dword [0x4177d4]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x104], ebx
cmp dword [0x417844], ebx
je 0x40537d
mov ecx, dword [0x4177d4]
lea eax, [ebp - 0x9d2]
push eax
mov eax, dword [0x4178ac]
push dword [ecx + eax*4]
call esi
jmp 0x405398
mov eax, dword [0x4178ac]
mov ecx, dword [0x4177d4]
push dword [ecx + eax*4]
lea eax, [ebp - 0x9d2]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
mov eax, dword [0x4178ac]
mov ecx, dword [0x4177d4]
mov eax, dword [ecx + eax*4]
mov cx, word [0x417cb4]
mov word [eax + 0x108], cx
inc dword [0x4178ac]
jmp 0x4053d2
mov eax, dword [0x4177d4]
mov cx, word [0x417cb4]
mov eax, dword [eax + edi*4]
mov word [eax + 0x108], cx
push 0
lea eax, [ebp - 0x9dc]
push dword [ebp + 8]
push 0x800
push eax
call fcn.00407108
push 4
lea eax, [ebp - 0x9dc]
push str.INI
push eax
call fcn.00410e90
add esp, 0x1c
test eax, eax
jne 0x406f96
cmp byte [ebp - 0x9d8], 0x46
je 0x406f96
cmp byte [ebp - 0x9d8], 0x4e
jne 0x4053d2
jmp 0x406f96
push 0xa
lea eax, [ebp - 0x9dc]
push str.INI_File:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x4056cf
push 2
lea eax, [ebp - 0x9d2]
push 0x4144cc
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x40545f
cmp dword [ebp - 0x24], 2
je 0x40547f
push 2
lea eax, [ebp - 0x9d2]
push 0x4144c8
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x405484
cmp dword [ebp - 0x20], 2
jne 0x405484
mov dword [ebp - 0xc], ebx
jmp 0x40548b
mov dword [ebp - 0xc], 1
cmp dword [0x417844], ebx
je 0x4054a5
lea eax, [ebp - 0x9d2]
push eax
lea eax, [ebp - 0x19e8]
push eax
call esi
jmp 0x4054b9
lea eax, [ebp - 0x19e8]
push eax
lea eax, [ebp - 0x9d2]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
push ebx
lea eax, [ebp - 0x9dc]
push dword [ebp + 8]
push edi
push eax
call fcn.00407108
add esp, 0x10
cmp dword [ebp - 0xc], ebx
je 0x406f7d
and dword [ebp - 0xc], 0
push 0xa
lea eax, [ebp - 0x9dc]
push str.INI_Sect:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x406f96
lea eax, [ebp - 0x9d2]
push eax
lea eax, [ebp - 0xbdc]
push eax
call esi
push 0
lea eax, [ebp - 0x9dc]
push dword [ebp + 8]
push 0x800
push eax
call fcn.00407108
push 0xa
lea eax, [ebp - 0x9dc]
push str.INI_Item:
push eax
call fcn.00410e90
add esp, 0x1c
test eax, eax
jne 0x406f96
lea eax, [ebp - 0x9d2]
push eax
lea eax, [ebp - 0xfe0]
push eax
call esi
push 0
lea eax, [ebp - 0x9dc]
push dword [ebp + 8]
push 0x800
push eax
call fcn.00407108
push 9
lea eax, [ebp - 0x9dc]
push str.INI_Val:
push eax
call fcn.00410e90
add esp, 0x1c
test eax, eax
jne 0x406f96
push eax
lea eax, [ebp - 0x9dc]
push dword [ebp + 8]
push 0x800
push eax
call fcn.00407108
push 9
lea eax, [ebp - 0x9dc]
push str.INI_Old:
push eax
call fcn.00410e90
add esp, 0x1c
test eax, eax
jne 0x4055be
mov dword [ebp - 0xc], 1
lea edi, [ebp - 0x9d3]
jmp 0x4055c3
mov edi, 0x4175f0
mov ecx, dword [0x417854]
lea eax, [ebp - 0xfe0]
push eax
lea eax, [ebp - 0xbdc]
push eax
lea eax, [ebp - 0x19e8]
push eax
mov eax, dword [0x4178e0]
push ecx
push 0x714
push dword [eax]
lea eax, [eax + ecx*4]
push eax
call fcn.0040bea7
add esp, 0x1c
test eax, eax
jne 0x4056c4
mov eax, dword [0x4178e0]
mov ecx, dword [0x417854]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x70c], 0
mov eax, dword [0x4178e0]
mov ecx, dword [0x417854]
mov eax, dword [eax + ecx*4]
mov cx, word [0x417cb4]
mov word [eax + 0x710], cx
mov ecx, dword [0x417854]
lea eax, [ebp - 0x19e8]
push eax
mov eax, dword [0x4178e0]
mov eax, dword [eax + ecx*4]
add eax, 8
push eax
call esi
mov ecx, dword [0x417854]
lea eax, [ebp - 0xbdc]
push eax
mov eax, dword [0x4178e0]
mov eax, dword [eax + ecx*4]
add eax, 0x10c
push eax
call esi
mov ecx, dword [0x417854]
lea eax, [ebp - 0xfe0]
push eax
mov eax, dword [0x4178e0]
mov eax, dword [eax + ecx*4]
add eax, 0x20c
push eax
call esi
mov eax, dword [0x4178e0]
mov ecx, dword [0x417854]
push edi
mov eax, dword [eax + ecx*4]
add eax, 0x30c
push eax
call esi
mov eax, dword [0x417854]
mov ecx, dword [0x4178e0]
mov eax, dword [ecx + eax*4]
lea ecx, [eax + 0x30c]
add eax, 0x50c
push ecx
push eax
call esi
inc dword [0x417854]
jmp 0x406f77
push edi
add eax, 0x50c
jmp 0x406ec8
push 0xe
lea eax, [ebp - 0x9dc]
push str.Execute_Path:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
je 0x406307
push 0x11
lea eax, [ebp - 0x9dc]
push str.Execute_Program:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
je 0x406307
push 0xc
lea eax, [ebp - 0x9dc]
push str.Icon_Group:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x4058c2
lea eax, [ebp - 0x9d0]
push eax
lea eax, [ebp - 0xbdc]
push eax
call esi
push ebx
lea eax, [ebp - 0x9dc]
push dword [ebp + 8]
push edi
push eax
call fcn.00407108
push 0xb
lea eax, [ebp - 0x9dc]
push str.Icon_Name:
push eax
call fcn.00410e90
add esp, 0x1c
test eax, eax
jne 0x406f96
lea eax, [ebp - 0x9d1]
push eax
lea eax, [ebp - 0xfe0]
push eax
call esi
push 0
lea eax, [ebp - 0x9dc]
push dword [ebp + 8]
push 0x800
push eax
call fcn.00407108
push 0xa
lea eax, [ebp - 0x9dc]
push str.Icon_Cmd:
push eax
call fcn.00410e90
add esp, 0x1c
test eax, eax
jne 0x406f96
xor edi, edi
cmp dword [0x4177f8], edi
jle 0x405801
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
lea eax, [ebp - 0xbdc]
push eax
mov eax, dword [0x41786c]
push dword [eax + edi*4]
call ebx
test eax, eax
jne 0x4057ec
lea eax, [ebp - 0xfe0]
push eax
mov eax, dword [0x41786c]
mov eax, dword [eax + edi*4]
add eax, 0x100
push eax
call ebx
test eax, eax
je 0x4057f5
inc edi
cmp edi, dword [0x4177f8]
jl 0x4057bc
cmp edi, dword [0x4177f8]
jl 0x4058a8
push 0x308
call fcn.0040bd85
mov edx, dword [0x4177f8]
pop ecx
mov ecx, dword [0x41786c]
mov dword [ecx + edx*4], eax
mov eax, dword [0x41786c]
mov ecx, dword [0x4177f8]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x300], 0
mov eax, dword [0x41786c]
mov ecx, dword [0x4177f8]
mov eax, dword [eax + ecx*4]
mov cx, word [0x417cb4]
mov word [eax + 0x304], cx
mov ecx, dword [0x4177f8]
lea eax, [ebp - 0xfe0]
push eax
mov eax, dword [0x41786c]
mov eax, dword [eax + ecx*4]
add eax, 0x100
push eax
call esi
mov ecx, dword [0x4177f8]
lea eax, [ebp - 0xbdc]
push eax
mov eax, dword [0x41786c]
push dword [eax + ecx*4]
call esi
mov ecx, dword [0x41786c]
lea eax, [ebp - 0x9d2]
push eax
mov eax, dword [0x4177f8]
mov eax, dword [ecx + eax*4]
add eax, 0x200
push eax
call esi
inc dword [0x4177f8]
jmp 0x406f7d
lea eax, [ebp - 0x9d2]
push eax
mov eax, dword [0x41786c]
mov eax, dword [eax + edi*4]
add eax, 0x200
push eax
jmp 0x40604a
push 0xc
lea eax, [ebp - 0x9dc]
push str.SubSystem:_B
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x40590b
lea eax, [ebp - 0x9d1]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040bd85
pop ecx
mov dword [0x4178d4], eax
lea ecx, [ebp - 0x9d1]
push ecx
push eax
call esi
mov dword [0x417800], ebx
jmp 0x406f7d
push 0xa
lea eax, [ebp - 0x9dc]
push str.Made_Dir:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x405b43
lea eax, [ebp - 0x9dc]
push 0x41410c
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x9d2]
push eax
lea eax, [ebp - 0xbdc]
push eax
call esi
lea eax, [ebp - 0xbdc]
push 0
push eax
call fcn.0040ae88
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
pop ecx
pop ecx
lea eax, [ebp - 0xbdc]
push eax
call ebx
mov edi, dword [ebp + 0xc]
push eax
lea eax, [ebp - 0xbdc]
push edi
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x40598f
lea eax, [ebp - 0xbdc]
push eax
call ebx
and byte [eax + edi], 0
lea eax, [ebp - 0x9d2]
push eax
call ebx
cmp eax, 3
mov dword [ebp - 4], eax
jle 0x406f7d
cmp byte [ebp - 0x9d2], 0x5c
jne 0x4059b6
cmp byte [ebp - 0x9d1], 0x5c
je 0x405a0d
cmp dword [0x41520c], 1
jle 0x4059d5
movsx eax, byte [ebp - 0x9d2]
push 0x103
push eax
call fcn.0040cc28
pop ecx
pop ecx
jmp 0x4059eb
movsx eax, byte [ebp - 0x9d2]
mov ecx, dword [str.________________________________H]
mov ax, word [ecx + eax*2]
and eax, 0x103
test eax, eax
je 0x406f7d
cmp byte [ebp - 0x9d1], 0x3a
jne 0x406f7d
cmp byte [ebp - 0x9d0], 0x5c
jne 0x406f7d
xor edi, edi
cmp dword [0x417ca8], edi
jle 0x405a63
mov eax, dword [0x417830]
push dword [eax + edi*4]
call ebx
cmp dword [ebp - 4], eax
jge 0x405a2b
mov eax, dword [ebp - 4]
jmp 0x405a35
mov eax, dword [0x417830]
push dword [eax + edi*4]
call ebx
push eax
mov eax, dword [0x417830]
push dword [eax + edi*4]
lea eax, [ebp - 0x9d2]
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
mov eax, dword [0x417ca8]
je 0x405a5b
inc edi
cmp edi, eax
jl 0x405a17
cmp edi, eax
jl 0x405b08
push 0x10c
call fcn.0040bd85
mov edx, dword [0x417ca8]
pop ecx
mov ecx, dword [0x417830]
mov dword [ecx + edx*4], eax
mov eax, dword [0x417830]
mov ecx, dword [0x417ca8]
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov dword [ecx + 0x104], eax
mov ecx, dword [0x417830]
mov edx, dword [0x417ca8]
mov ecx, dword [ecx + edx*4]
mov word [ecx + 0x108], ax
mov ecx, dword [0x417830]
mov edx, dword [0x417ca8]
mov ecx, dword [ecx + edx*4]
mov dx, word [0x417cb4]
mov word [ecx + 0x10a], dx
cmp dword [0x417844], eax
je 0x405ae8
mov ecx, dword [0x417ca8]
lea eax, [ebp - 0x9d2]
push eax
mov eax, dword [0x417830]
push dword [eax + ecx*4]
jmp 0x405cef
mov eax, dword [0x417830]
mov ecx, dword [0x417ca8]
push dword [eax + ecx*4]
lea eax, [ebp - 0x9d2]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
jmp 0x405cf1
mov eax, dword [0x417830]
shl edi, 2
push dword [edi + eax]
call ebx
cmp dword [ebp - 4], eax
jge 0x405b1f
mov eax, dword [ebp - 4]
jmp 0x405b29
mov eax, dword [0x417830]
push dword [edi + eax]
call ebx
mov ecx, dword [0x417830]
mov ecx, dword [edi + ecx]
and byte [ecx + eax], 0
mov eax, dword [0x417830]
mov eax, dword [edi + eax]
jmp 0x405d21
push 0xb
lea eax, [ebp - 0x9dc]
push str.File_Tree:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x405d34
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp - 0x9d1]
push eax
call ebx
lea edi, [ebp + eax - 0x9d5]
push str..
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x405b89
and byte [edi], al
lea eax, [ebp - 0x9dc]
push 0x2a
push eax
call fcn.0040c3d7
pop ecx
test eax, eax
pop ecx
jne 0x405bc3
lea eax, [ebp - 0x9dc]
push 0x3f
push eax
call fcn.0040c3d7
pop ecx
test eax, eax
pop ecx
jne 0x405bc3
lea eax, [ebp - 0x9dc]
push 0x41410c
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x9d1]
push eax
call ebx
cmp eax, 3
jle 0x406f7d
cmp byte [ebp - 0x9d1], 0x5c
jne 0x405be7
cmp byte [ebp - 0x9d0], 0x5c
je 0x405c3e
cmp dword [0x41520c], 1
jle 0x405c06
movsx eax, byte [ebp - 0x9d1]
push 0x103
push eax
call fcn.0040cc28
pop ecx
pop ecx
jmp 0x405c1c
movsx eax, byte [ebp - 0x9d1]
mov ecx, dword [str.________________________________H]
mov ax, word [ecx + eax*2]
and eax, 0x103
test eax, eax
je 0x406f7d
cmp byte [ebp - 0x9d0], 0x3a
jne 0x406f7d
cmp byte [ebp - 0x9cf], 0x5c
jne 0x406f7d
xor edi, edi
cmp dword [0x417ca8], edi
jle 0x405c73
mov eax, dword [0x417830]
push dword [eax + edi*4]
lea eax, [ebp - 0x9d1]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
mov eax, dword [0x417ca8]
je 0x405c6b
inc edi
cmp edi, eax
jl 0x405c48
cmp edi, eax
jl 0x405cfc
push 0x10c
call fcn.0040bd85
mov edx, dword [0x417ca8]
pop ecx
mov ecx, dword [0x417830]
mov dword [ecx + edx*4], eax
mov eax, dword [0x417830]
mov ecx, dword [0x417ca8]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x104], 0
mov eax, dword [0x417830]
mov ecx, dword [0x417ca8]
mov eax, dword [eax + ecx*4]
mov cx, word [0x417cb4]
mov word [eax + 0x108], cx
mov eax, dword [0x417830]
mov ecx, dword [0x417ca8]
mov eax, dword [eax + ecx*4]
mov cx, word [0x417cb4]
mov word [eax + 0x10a], cx
mov ecx, dword [0x417830]
lea eax, [ebp - 0x9d1]
push eax
mov eax, dword [0x417ca8]
push dword [ecx + eax*4]
call esi
inc dword [0x417ca8]
jmp 0x406f7d
mov ecx, dword [0x417830]
mov dx, word [0x417cb4]
mov eax, edi
shl eax, 2
mov ecx, dword [eax + ecx]
mov word [ecx + 0x108], dx
mov ecx, dword [0x417830]
mov eax, dword [eax + ecx]
mov cx, word [0x417cb4]
mov word [eax + 0x10a], cx
jmp 0x406f7d
push 0xc
lea eax, [ebp - 0x9dc]
push str.RegDB_Tree:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x405e97
lea eax, [ebp - 0x9d0]
push eax
lea eax, [ebp - 0xfe0]
push eax
call esi
push ebx
lea eax, [ebp - 0x9dc]
push dword [ebp + 8]
push edi
push eax
call fcn.00407108
push 0xc
lea eax, [ebp - 0x9dc]
push str.RegDB_Root:
push eax
mov dword [ebp - 4], ebx
call fcn.00410e90
add esp, 0x1c
test eax, eax
jne 0x405db3
lea eax, [ebp - 0x9d0]
push eax
call fcn.0040cda6
push ebx
mov dword [ebp - 4], eax
push dword [ebp + 8]
lea eax, [ebp - 0x9dc]
push edi
push eax
call fcn.00407108
add esp, 0x14
xor edi, edi
cmp dword [0x417c28], ebx
jle 0x405dfe
mov eax, dword [0x4178f8]
push dword [eax + edi*4]
lea eax, [ebp - 0xfe0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
mov eax, dword [0x4178f8]
jne 0x405de9
mov ecx, dword [eax + edi*4]
mov edx, dword [ebp - 4]
cmp edx, dword [ecx + 0x100]
je 0x405df2
inc edi
cmp edi, dword [0x417c28]
jl 0x405dc2
cmp edi, dword [0x417c28]
jl 0x405e81
push 0x10c
call fcn.0040bd85
mov edx, dword [0x417c28]
pop ecx
mov ecx, dword [0x4178f8]
mov dword [ecx + edx*4], eax
mov eax, dword [0x4178f8]
mov ecx, dword [0x417c28]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x104], ebx
mov eax, dword [0x4178f8]
mov ecx, dword [0x417c28]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 4]
mov dword [eax + 0x100], ecx
mov eax, dword [0x4178f8]
mov ecx, dword [0x417c28]
mov eax, dword [eax + ecx*4]
mov cx, word [0x417cb4]
mov word [eax + 0x108], cx
mov ecx, dword [0x4178f8]
lea eax, [ebp - 0xfe0]
push eax
mov eax, dword [0x417c28]
push dword [ecx + eax*4]
call esi
inc dword [0x417c28]
jmp 0x406f96
mov eax, dword [eax + edi*4]
mov cx, word [0x417cb4]
mov word [eax + 0x108], cx
jmp 0x406f96
push 4
lea eax, [ebp - 0x9dc]
push str.
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x405f02
lea eax, [ebp - 0x9dc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [0x4178c4]
mov edx, dword [0x4178a4]
add edx, ecx
mov ecx, dword [0x4177d0]
sub edx, eax
dec edx
inc word [0x417cb4]
movzx eax, word [0x417cb4]
mov dword [0x4178cc], edx
mov dword [ecx + eax*4], ebx
xor eax, eax
cmp byte [ebp - 0x9d8], 0x20
sete al
mov dword [0x417844], eax
jmp 0x406f7d
push 8
lea eax, [ebp - 0x9dc]
push str.Source:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x405f81
lea eax, [ebp - 0x9d4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040bd85
mov edx, dword [0x4177d0]
pop ecx
movzx ecx, word [0x417cb4]
mov dword [edx + ecx*4], eax
mov ecx, dword [0x4177d0]
lea eax, [ebp - 0x9d4]
push eax
movzx eax, word [0x417cb4]
push dword [ecx + eax*4]
call esi
lea eax, [ebp - 0x9dc]
push 0x7c
push eax
call fcn.0040c3d7
pop ecx
test eax, eax
pop ecx
je 0x406f7d
mov dword [0x417864], 1
jmp 0x406f7d
push 0xf
lea eax, [ebp - 0x9dc]
push str.Uninstall_MIF:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x405fac
lea eax, [ebp - 0x9cd]
push eax
push 0x417900
jmp 0x40604a
push 0xe
lea eax, [ebp - 0x9dc]
push str.Manufacturer:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x405fd4
lea eax, [ebp - 0x9ce]
push eax
push 0x417980
jmp 0x40604a
push 9
lea eax, [ebp - 0x9dc]
push str.Product:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x405ffc
lea eax, [ebp - 0x9d3]
push eax
push 0x417a00
jmp 0x40604a
push 0x10
lea eax, [ebp - 0x9dc]
push str.Version_Number:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x406024
lea eax, [ebp - 0x9cc]
push eax
push 0x417a80
jmp 0x40604a
push 0xf
lea eax, [ebp - 0x9dc]
push str.Serial_Number:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x406051
lea eax, [ebp - 0x9cd]
push eax
push 0x417b00
call esi
jmp 0x406f7d
lea eax, [ebp - 0x9dc]
push str.User_Rights:_Admin
push eax
call fcn.00410f40
pop ecx
test eax, eax
pop ecx
jne 0x4060a7
cmp dword [ebp - 0x2c], ebx
jne 0x406f7d
cmp dword [0x4177dc], 1
jne 0x406f7d
push 1
xor ebx, ebx
pop edi
push 0xe0000000
push ebx
push ebx
mov dword [ebp - 0x2c], edi
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
cmp eax, ebx
je 0x406faa
push eax
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x406f7d
push 0xd
lea eax, [ebp - 0x9dc]
push str.Per_User_ID:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x406242
mov edi, 0x100
push edi
call fcn.0040bd85
pop ecx
mov dword [0x4178bc], eax
lea ecx, [ebp - 0x9cf]
push ecx
push eax
call esi
cmp dword [0x417820], ebx
je 0x406f7d
lea eax, [ebp - 0x14]
push eax
push 0x13
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionExplorerShell_Folders
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40619f
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], edi
push eax
lea eax, [ebp - 0xbdc]
push eax
lea eax, [ebp - 0x5c]
push eax
push 0
push str.Start_Menu
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x406196
cmp byte [ebp - 0xbdc], al
je 0x406196
lea eax, [ebp - 0xbdc]
push eax
lea eax, [ebp - 0xde0]
push eax
call esi
lea eax, [ebp - 0xde0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp + eax - 0xde0]
lea ecx, [ebp - 0xde0]
cmp eax, ecx
jbe 0x406192
cmp byte [eax], 0x5c
je 0x406178
dec eax
lea ecx, [ebp - 0xde0]
cmp eax, ecx
ja 0x406168
lea ecx, [ebp - 0xde0]
cmp eax, ecx
jbe 0x406192
dec eax
lea ecx, [ebp - 0xde0]
cmp eax, ecx
jbe 0x406192
cmp byte [eax], 0x5c
jne 0x406182
and byte [eax + 1], 0
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [0x4177dc], 1
jne 0x406f7d
lea eax, [ebp - 0x14]
push eax
push 0x13
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionExplorerShell_Folders
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x406f7d
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], edi
push eax
lea eax, [ebp - 0xbdc]
push eax
lea eax, [ebp - 0x58]
push eax
push 0
push str.Common_Start_Menu
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x406234
cmp byte [ebp - 0xbdc], al
je 0x406234
lea eax, [ebp - 0xbdc]
push eax
lea eax, [ebp - 0x11e4]
push eax
call esi
lea eax, [ebp - 0x11e4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp + eax - 0x11e4]
lea ecx, [ebp - 0x11e4]
cmp eax, ecx
jbe 0x406230
cmp byte [eax], 0x5c
je 0x406230
dec eax
jmp 0x40621e
and byte [eax + 1], 0
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x406f7d
push 0x15
lea eax, [ebp - 0x9dc]
push str.Delete_in_use_files:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x4062ae
push 2
lea eax, [ebp - 0x9c7]
push 0x4142b8
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x406285
mov dword [0x4178d0], 1
jmp 0x406f7d
push 2
lea eax, [ebp - 0x9c7]
push 0x4142b4
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x406f7d
and dword [0x4178d0], eax
jmp 0x406f7d
push 0x17
lea eax, [ebp - 0x9dc]
push str.System_Restore:_Enabled
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x4062d7
mov dword [0x41781c], 1
jmp 0x406f7d
push 7
lea eax, [ebp - 0x9dc]
push 0x414294
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x406f7d
lea eax, [ebp - 0x9dc]
push eax
call fcn.0040c3f6
pop ecx
jmp 0x406f7d
xor eax, eax
cmp byte [ebp - 0x9d3], 0x72
mov dword [ebp - 8], ebx
setne al
dec eax
and eax, 3
add eax, 0xe
cmp dword [0x417bc0], ebx
mov dword [ebp - 4], eax
jle 0x406360
mov eax, dword [0x417880]
mov ecx, dword [ebp - 8]
push dword [eax + ecx*4]
mov eax, dword [ebp - 4]
lea eax, [ebp + eax - 0x9dc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
mov eax, dword [0x417bc0]
je 0x406355
inc dword [ebp - 8]
cmp dword [ebp - 8], eax
jl 0x406328
mov ecx, dword [ebp - 8]
cmp ecx, eax
jl 0x406432
push 0x20c
call fcn.0040bd85
mov edx, dword [0x417bc0]
pop ecx
mov ecx, dword [0x417880]
mov dword [ecx + edx*4], eax
mov eax, dword [0x417880]
mov ecx, dword [0x417bc0]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x204], ebx
mov eax, dword [0x417880]
mov ecx, dword [0x417bc0]
mov eax, dword [eax + ecx*4]
mov cx, word [0x417cb4]
mov word [eax + 0x208], cx
mov eax, dword [ebp - 4]
mov ecx, dword [0x417bc0]
lea eax, [ebp + eax - 0x9dc]
push eax
mov eax, dword [0x417880]
push dword [eax + ecx*4]
call esi
mov eax, dword [0x417bc0]
mov ecx, dword [0x417880]
push ebx
mov eax, dword [ecx + eax*4]
push dword [ebp + 8]
and byte [eax + 0x104], 0
lea eax, [ebp - 0x9dc]
push edi
push eax
call fcn.00407108
push 0xe
lea eax, [ebp - 0x9dc]
push str.Execute_Name:
push eax
call fcn.00410e90
add esp, 0x1c
test eax, eax
jne 0x406424
mov ecx, dword [0x417880]
lea eax, [ebp - 0x9ce]
push eax
mov eax, dword [0x417bc0]
mov eax, dword [ecx + eax*4]
add eax, 0x104
push eax
call esi
jmp 0x406427
mov dword [ebp - 0xc], ebx
inc dword [0x417bc0]
jmp 0x406f77
mov eax, dword [0x417880]
mov eax, dword [eax + ecx*4]
mov cx, word [0x417cb4]
mov word [eax + 0x208], cx
jmp 0x406f77
and dword [ebp - 8], 0
and byte [ebp - 0x15e4], 0
and byte [ebp - 0xdc], 0
lea eax, [ebp - 0x9dc]
push 0x7c
push eax
call fcn.0040c3d7
mov ebx, eax
pop ecx
test ebx, ebx
pop ecx
je 0x406491
lea eax, [ebx + 1]
push eax
lea eax, [ebp - 0xdc]
push eax
call esi
cmp byte [ebx - 1], 0x20
jne 0x40648e
and byte [ebx - 1], 0
jmp 0x406491
and byte [ebx], 0
cmp byte [ebp - 0x9dc], 0x53
jne 0x406519
lea eax, [ebp - 0x9d0]
push eax
lea eax, [ebp - 0x1dc]
push eax
call esi
cmp dword [0x4178bc], 0
je 0x4065a9
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp - 0xde0]
push eax
call ebx
push eax
lea eax, [ebp - 0xde0]
push eax
lea eax, [ebp - 0x1dc]
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x4065a9
lea eax, [ebp - 0x11e4]
push eax
call ebx
push eax
lea eax, [ebp - 0x11e4]
push eax
lea eax, [ebp - 0x1dc]
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
je 0x4065a9
and byte [ebp - 0x1dc], 0
jmp 0x4065a9
cmp byte [ebp - 0x9d7], 0x43
jne 0x406534
lea eax, [ebp - 0x9d1]
push eax
lea eax, [ebp - 0x1dc]
push eax
call esi
jmp 0x4065a9
lea eax, [ebp - 0x9cc]
push eax
lea eax, [ebp - 0x1dc]
push eax
call esi
cmp dword [0x417820], 0
mov dword [ebp - 8], 1
je 0x4065a9
lea eax, [ebp - 0x28]
push eax
push 0x1f
push 0
push dword [0x414058]
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4065a9
lea eax, [ebp - 0x44]
mov dword [ebp - 0x44], 0x100
push eax
lea eax, [ebp - 0x1ae8]
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x1dc]
push 0
push eax
push dword [ebp - 0x28]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4065a0
and dword [ebp - 8], eax
push dword [ebp - 0x28]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor ebx, ebx
lea eax, [ebp - 0x9dc]
push ebx
push dword [ebp + 8]
push edi
push eax
call fcn.00407108
and byte [ebp - 0xcdc], bl
push 0xb
lea eax, [ebp - 0x9dc]
push str.Link_Info:
push eax
call fcn.00410e90
add esp, 0x1c
test eax, eax
jne 0x406600
lea eax, [ebp - 0x9d1]
push eax
lea eax, [ebp - 0x15e4]
push eax
call esi
push ebx
lea eax, [ebp - 0x9dc]
push dword [ebp + 8]
push edi
push eax
call fcn.00407108
add esp, 0x10
push 0xd
lea eax, [ebp - 0x9dc]
push str.Backup_Copy:
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x406636
lea eax, [ebp - 0x9cf]
push eax
lea eax, [ebp - 0xcdc]
push eax
call esi
mov dword [0x417bb8], 1
jmp 0x406639
mov dword [ebp - 0xc], ebx
push 2
lea eax, [ebp - 0x1dc]
pop edi
push edi
push 0x4144cc
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x40665e
cmp dword [ebp - 0x24], edi
je 0x406dd1
push edi
lea eax, [ebp - 0x1dc]
push 0x4144c8
push eax
call fcn.00410e90
add esp, 0xc
test eax, eax
jne 0x406680
cmp dword [ebp - 0x20], edi
je 0x406dd1
cmp dword [ebp - 8], ebx
je 0x406692
cmp byte [ebp - 0xcdc], 0
je 0x406dd1
cmp byte [ebp - 0x1dc], 0
je 0x406dd1
lea eax, [ebp - 0x1dc]
push ebx
push eax
call fcn.0040b027
pop ecx
test eax, eax
pop ecx
jne 0x406d0c
lea eax, [ebp - 0x1dc]
push eax
lea eax, [ebp - 0xbdc]
push eax
call esi
lea eax, [ebp - 0xbdc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp + eax - 0xbdd]
lea ecx, [ebp - 0xbdc]
cmp eax, ecx
jbe 0x4066ef
cmp byte [eax], 0x5c
je 0x4066f4
and byte [eax], 0
dec eax
jmp 0x4066da
cmp byte [eax], 0x5c
jne 0x4066f7
and byte [eax], 0
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
lea eax, [ebp - 0x1cf4]
push eax
lea eax, [ebp - 0xbdc]
push eax
call ebx
test eax, eax
je 0x406a13
lea eax, [ebp - 0x17e8]
push eax
lea eax, [ebp - 0xbdc]
push eax
call ebx
test eax, eax
je 0x406a13
push dword [0x417870]
lea eax, [ebp - 0xbdc]
push eax
call ebx
test eax, eax
je 0x406a13
lea eax, [ebp - 0x1bf0]
push eax
lea eax, [ebp - 0xbdc]
push eax
call ebx
test eax, eax
je 0x406a13
mov ecx, dword [0x417bd4]
xor ebx, ebx
push ebx
lea eax, [ebp - 0x1dc]
push ebx
push eax
mov eax, dword [0x417818]
push ecx
push 0x27c
push dword [eax]
lea eax, [eax + ecx*4]
push eax
call fcn.0040bea7
mov edi, eax
add esp, 0x1c
cmp edi, ebx
jne 0x4069bf
mov eax, dword [0x417818]
mov ecx, dword [0x417bd4]
mov eax, dword [eax + ecx*4]
mov word [eax + 0x274], bx
mov eax, dword [0x417bd4]
mov ecx, dword [0x417818]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x264], ebx
cmp dword [0x417844], ebx
je 0x4067de
mov ecx, dword [0x417818]
lea eax, [ebp - 0x1dc]
push eax
mov eax, dword [0x417bd4]
mov eax, dword [ecx + eax*4]
add eax, 8
push eax
call esi
jmp 0x4067fd
mov eax, dword [0x417bd4]
mov ecx, dword [0x417818]
mov eax, dword [ecx + eax*4]
add eax, 8
push eax
lea eax, [ebp - 0x1dc]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
cmp dword [0x417844], ebx
je 0x406824
mov ecx, dword [0x417818]
lea eax, [ebp - 0xcdc]
push eax
mov eax, dword [0x417bd4]
mov eax, dword [ecx + eax*4]
add eax, 0x10c
push eax
call esi
jmp 0x406845
mov eax, dword [0x417bd4]
mov ecx, dword [0x417818]
mov eax, dword [ecx + eax*4]
add eax, 0x10c
push eax
lea eax, [ebp - 0xcdc]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
mov eax, dword [0x417818]
mov ecx, dword [0x417bd4]
cmp dword [ebp - 4], ebx
mov eax, dword [eax + ecx*4]
mov word [eax + 0x26e], bx
mov eax, dword [0x417818]
mov ecx, dword [0x417bd4]
mov eax, dword [eax + ecx*4]
mov word [eax + 0x26c], bx
mov eax, dword [0x417818]
mov ecx, dword [0x417bd4]
mov eax, dword [eax + ecx*4]
mov cx, word [0x417cb4]
mov word [eax + 0x270], cx
mov eax, dword [0x417bd4]
mov ecx, dword [0x417818]
mov eax, dword [ecx + eax*4]
mov cx, word [0x417cb4]
mov word [eax + 0x272], cx
jne 0x4068e2
mov eax, dword [0x417818]
mov ecx, dword [0x417bd4]
mov eax, dword [eax + ecx*4]
mov cx, word [0x417cb4]
mov word [eax + 0x276], cx
mov eax, dword [0x417bd4]
mov ecx, dword [0x417818]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x278], 1
jmp 0x4068f7
mov eax, dword [0x417bd4]
mov ecx, dword [0x417818]
mov eax, dword [ecx + eax*4]
mov word [eax + 0x276], bx
cmp dword [ebp - 8], ebx
jne 0x40691f
cmp byte [ebp - 0xcdc], 0
jne 0x40691f
mov eax, dword [0x417bd4]
mov ecx, dword [0x417818]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x268], 1
jmp 0x406933
mov eax, dword [0x417bd4]
mov ecx, dword [0x417818]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x268], ebx
mov ecx, dword [0x417bd4]
lea eax, [ebp - 0xdc]
push eax
mov eax, dword [0x417818]
mov eax, dword [eax + ecx*4]
add eax, 0x210
push eax
call esi
mov eax, dword [0x417bd4]
mov ecx, dword [0x417818]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x260], ebx
cmp byte [ebp - 0x15e4], 0
je 0x4069b4
lea eax, [ebp - 0x15e4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040bd85
mov edx, dword [0x417bd4]
pop ecx
mov ecx, dword [0x417818]
mov ecx, dword [ecx + edx*4]
mov dword [ecx + 0x260], eax
mov ecx, dword [0x417818]
lea eax, [ebp - 0x15e4]
push eax
mov eax, dword [0x417bd4]
mov eax, dword [ecx + eax*4]
push dword [eax + 0x260]
call esi
inc dword [0x417bd4]
jmp 0x406f77
mov ax, word [0x417cb4]
cmp dword [ebp - 4], ebx
mov word [edi + 0x270], ax
jne 0x4069e4
mov ax, word [0x417cb4]
inc dword [edi + 0x278]
mov word [edi + 0x276], ax
cmp byte [ebp - 0xcdc], 0
je 0x406e89
lea eax, [ebp - 0xcdc]
push eax
lea eax, [edi + 0x10c]
push eax
call esi
mov ax, word [0x417cb4]
mov word [edi + 0x272], ax
jmp 0x406e89
xor edi, edi
cmp dword [0x4178a0], edi
jle 0x406a44
mov eax, dword [0x417c34]
push dword [eax + edi*4]
lea eax, [ebp - 0x1dc]
push eax
call ebx
test eax, eax
mov eax, dword [0x4178a0]
je 0x406a3c
inc edi
cmp edi, eax
jl 0x406a1d
cmp edi, eax
jl 0x406c8a
push 0x274
call fcn.0040bd85
mov edx, dword [0x4178a0]
pop ecx
mov ecx, dword [0x417c34]
xor edi, edi
mov dword [ecx + edx*4], eax
mov eax, dword [0x417c34]
mov ecx, dword [0x4178a0]
mov eax, dword [eax + ecx*4]
mov word [eax + 0x26c], di
mov eax, dword [0x4178a0]
mov ecx, dword [0x417c34]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 0x10]
mov dword [eax + 0x25c], ecx
cmp dword [0x417844], edi
je 0x406aad
mov ecx, dword [0x417c34]
lea eax, [ebp - 0x1dc]
push eax
mov eax, dword [0x4178a0]
push dword [ecx + eax*4]
call esi
jmp 0x406ac8
mov eax, dword [0x4178a0]
mov ecx, dword [0x417c34]
push dword [ecx + eax*4]
lea eax, [ebp - 0x1dc]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
cmp dword [0x417844], edi
je 0x406aef
mov ecx, dword [0x417c34]
lea eax, [ebp - 0xcdc]
push eax
mov eax, dword [0x4178a0]
mov eax, dword [ecx + eax*4]
add eax, 0x104
push eax
call esi
jmp 0x406b10
mov eax, dword [0x4178a0]
mov ecx, dword [0x417c34]
mov eax, dword [ecx + eax*4]
add eax, 0x104
push eax
lea eax, [ebp - 0xcdc]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
mov eax, dword [0x417c34]
mov ecx, dword [0x4178a0]
cmp dword [ebp - 4], edi
mov eax, dword [eax + ecx*4]
mov word [eax + 0x266], di
mov eax, dword [0x417c34]
mov ecx, dword [0x4178a0]
mov eax, dword [eax + ecx*4]
mov word [eax + 0x264], di
mov eax, dword [0x417c34]
mov ecx, dword [0x4178a0]
mov eax, dword [eax + ecx*4]
mov cx, word [0x417cb4]
mov word [eax + 0x268], cx
mov eax, dword [0x4178a0]
mov ecx, dword [0x417c34]
mov eax, dword [ecx + eax*4]
mov cx, word [0x417cb4]
mov word [eax + 0x26a], cx
jne 0x406bad
mov eax, dword [0x417c34]
mov ecx, dword [0x4178a0]
mov eax, dword [eax + ecx*4]
mov cx, word [0x417cb4]
mov word [eax + 0x26e], cx
mov eax, dword [0x4178a0]
mov ecx, dword [0x417c34]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x270], 1
jmp 0x406bc2
mov eax, dword [0x4178a0]
mov ecx, dword [0x417c34]
mov eax, dword [ecx + eax*4]
mov word [eax + 0x26e], di
cmp dword [ebp - 8], edi
jne 0x406bea
cmp byte [ebp - 0xcdc], 0
jne 0x406bea
mov eax, dword [0x4178a0]
mov ecx, dword [0x417c34]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x260], 1
jmp 0x406bfe
mov eax, dword [0x4178a0]
mov ecx, dword [0x417c34]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x260], edi
mov ecx, dword [0x4178a0]
lea eax, [ebp - 0xdc]
push eax
mov eax, dword [0x417c34]
mov eax, dword [eax + ecx*4]
add eax, 0x208
push eax
call esi
mov eax, dword [0x4178a0]
mov ecx, dword [0x417c34]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x258], edi
cmp byte [ebp - 0x15e4], 0
je 0x406c7f
lea eax, [ebp - 0x15e4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040bd85
mov edx, dword [0x4178a0]
pop ecx
mov ecx, dword [0x417c34]
mov ecx, dword [ecx + edx*4]
mov dword [ecx + 0x258], eax
mov ecx, dword [0x417c34]
lea eax, [ebp - 0x15e4]
push eax
mov eax, dword [0x4178a0]
mov eax, dword [ecx + eax*4]
push dword [eax + 0x258]
call esi
inc dword [0x4178a0]
jmp 0x406f77
mov eax, dword [0x417c34]
mov cx, word [0x417cb4]
shl edi, 2
cmp dword [ebp - 4], 0
mov eax, dword [edi + eax]
mov word [eax + 0x268], cx
jne 0x406ccd
mov eax, dword [0x417c34]
mov cx, word [0x417cb4]
mov eax, dword [edi + eax]
mov word [eax + 0x26e], cx
mov eax, dword [0x417c34]
mov eax, dword [edi + eax]
inc dword [eax + 0x270]
cmp byte [ebp - 0xcdc], 0
je 0x406f1c
lea eax, [ebp - 0xcdc]
push eax
mov eax, dword [0x417c34]
mov eax, dword [edi + eax]
add eax, 0x104
push eax
call esi
mov eax, dword [0x417c34]
mov cx, word [0x417cb4]
mov eax, dword [edi + eax]
mov word [eax + 0x26a], cx
jmp 0x406f1c
xor edi, edi
cmp dword [0x417804], ebx
jle 0x406d3d
mov eax, dword [0x417834]
push dword [eax + edi*4]
lea eax, [ebp - 0x1dc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
mov eax, dword [0x417804]
je 0x406d39
inc edi
cmp edi, eax
jl 0x406d16
cmp edi, eax
jl 0x406d5f
lea eax, [ebp - 0x15e4]
push eax
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp - 0x1dc]
push eax
call fcn.00407017
add esp, 0xc
jmp 0x406f77
mov eax, dword [0x417834]
mov cx, word [0x417cb4]
shl edi, 2
mov eax, dword [edi + eax]
mov word [eax + 0x268], cx
lea eax, [ebp - 0xdc]
push eax
mov eax, dword [0x417834]
mov eax, dword [edi + eax]
add eax, 0x208
push eax
call esi
cmp byte [ebp - 0x15e4], 0
je 0x406f77
lea eax, [ebp - 0x15e4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040bd85
pop ecx
mov ecx, dword [0x417834]
mov ecx, dword [edi + ecx]
mov dword [ecx + 0x258], eax
lea eax, [ebp - 0x15e4]
push eax
mov eax, dword [0x417834]
jmp 0x406f6c
cmp byte [ebp - 0xdc], 0
jne 0x406de7
cmp byte [ebp - 0x15e4], 0
je 0x406f77
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
lea eax, [ebp - 0x1cf4]
push eax
lea eax, [ebp - 0xbdc]
push eax
call ebx
test eax, eax
je 0x406ece
lea eax, [ebp - 0x17e8]
push eax
lea eax, [ebp - 0xbdc]
push eax
call ebx
test eax, eax
je 0x406ece
push dword [0x417870]
lea eax, [ebp - 0xbdc]
push eax
call ebx
test eax, eax
je 0x406ece
lea eax, [ebp - 0x1bf0]
push eax
lea eax, [ebp - 0xbdc]
push eax
call ebx
test eax, eax
je 0x406ece
xor ebx, ebx
lea eax, [ebp - 0x1dc]
push ebx
push ebx
push eax
mov eax, dword [0x417818]
push dword [0x417bd4]
push 0x27c
push dword [eax]
push ebx
call fcn.0040bea7
mov edi, eax
add esp, 0x1c
cmp edi, ebx
je 0x406d3d
mov ax, word [0x417cb4]
mov word [edi + 0x274], ax
lea eax, [ebp - 0xdc]
push eax
lea eax, [edi + 0x210]
push eax
call esi
cmp byte [ebp - 0x15e4], 0
je 0x406f77
lea eax, [ebp - 0x15e4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040bd85
pop ecx
mov dword [edi + 0x260], eax
lea ecx, [ebp - 0x15e4]
push ecx
push eax
jmp 0x406f75
xor edi, edi
cmp dword [0x4178a0], edi
jle 0x406d3d
mov eax, dword [0x417c34]
push dword [eax + edi*4]
lea eax, [ebp - 0x1dc]
push eax
call ebx
test eax, eax
mov eax, dword [0x4178a0]
je 0x406efb
inc edi
cmp edi, eax
jl 0x406edc
cmp edi, eax
jge 0x406d3d
mov eax, dword [0x417c34]
mov cx, word [0x417cb4]
shl edi, 2
mov eax, dword [edi + eax]
mov word [eax + 0x26c], cx
lea eax, [ebp - 0xdc]
push eax
mov eax, dword [0x417c34]
mov eax, dword [edi + eax]
add eax, 0x208
push eax
call esi
cmp byte [ebp - 0x15e4], 0
je 0x406f77
lea eax, [ebp - 0x15e4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040bd85
pop ecx
mov ecx, dword [0x417c34]
mov ecx, dword [edi + ecx]
mov dword [ecx + 0x258], eax
lea eax, [ebp - 0x15e4]
push eax
mov eax, dword [0x417c34]
mov eax, dword [edi + eax]
push dword [eax + 0x258]
call esi
cmp dword [ebp - 0xc], 0
je 0x406f96
push 0
lea eax, [ebp - 0x9dc]
push dword [ebp + 8]
push 0x800
push eax
call fcn.00407108
add esp, 0x10
cmp byte [ebp - 0x9dc], 0
jne 0x40468b
xor ebx, ebx
jmp 0x4047e5
mov esi, 0x100
lea eax, [ebp - 0x1df4]
push esi
push eax
push 0x19
push dword [0x417bb0]
call fcn.0040b2b1
lea eax, [ebp - 0x1ef4]
push esi
push eax
push 0x43
push dword [0x417bb0]
call fcn.0040b2b1
mov eax, dword [0x4177bc]
add esp, 0x20
cmp eax, ebx
je 0x406fec
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
lea eax, [ebp - 0x1df4]
push ebx
push eax
lea eax, [ebp - 0x1ef4]
push eax
push dword [0x4177c0]
call dword [sym.imp.USER32.dll_MessageBoxA]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll__lclose]
mov eax, edi
jmp 0x4047f0