Function at 0x403d2b
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, 0x28d8
call fcn.0040c390
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push edi
mov edi, 0x412524
lea eax, [ebp - 0xdc4]
push edi
push eax
call esi
lea eax, [ebp - 0x12c8]
push edi
push eax
call esi
push dword [ebp + 8]
mov edi, dword [ebp + 0xc]
push edi
call esi
push edi
call fcn.0040b53f
cmp eax, edi
pop ecx
jbe 0x403d72
and byte [eax - 1], 0
xor ebx, ebx
push ebx
push edi
call fcn.0040a794
pop ecx
pop ecx
push 0x4120e0
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov edi, dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
push 0x412520
mov dword [ebp - 0x24], ebx
call edi
push 0x41251c
mov dword [ebp - 0x1c], eax
call edi
push 0x10c
mov dword [ebp - 0x18], eax
call fcn.0040b671
mov edx, dword [0x413b88]
pop ecx
mov ecx, dword [0x4136fc]
push dword [ebp + 8]
mov dword [ecx + edx*4], eax
mov eax, dword [0x4136fc]
mov ecx, dword [0x413b88]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x104], ebx
mov eax, dword [0x4136fc]
mov ecx, dword [0x413b88]
mov eax, dword [eax + ecx*4]
mov word [eax + 0x108], bx
mov eax, dword [0x4136fc]
mov ecx, dword [0x413b88]
mov eax, dword [eax + ecx*4]
mov word [eax + 0x10a], 0x7fff
mov eax, dword [0x4136fc]
mov ecx, dword [0x413b88]
mov edi, dword [eax + ecx*4]
push edi
call esi
push 1
push edi
call fcn.0040a794
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 0x403e3a
cmp byte [eax], 0x5c
je 0x403e3f
and byte [eax], 0
dec eax
jmp 0x403e2b
cmp byte [eax], 0x5c
jne 0x403e43
and byte [eax + 1], 0
push edi
call ebx
cmp eax, 3
jg 0x403e4e
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
lea eax, [ebp - 0x9c0]
push 0x100
push eax
je 0x403e79
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
jmp 0x403e7b
call ebx
lea eax, [ebp - 0x9c0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp byte [ebp + eax - 0x9c1], 0x5c
je 0x403ea4
lea eax, [ebp - 0x9c0]
push 0x4120e0
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [ebp - 0x9c0]
push eax
push edi
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x403ec3
and dword [ebp - 8], eax
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x403e5f
lea eax, [ebp - 0x1cd8]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea eax, [ebp - 0x17cc]
push 0x104
push eax
call ebx
lea eax, [ebp - 0x17cc]
push eax
lea eax, [ebp - 0x1ad0]
push eax
call esi
lea eax, [ebp - 0x1ad0]
push str.WIN32S
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp dword [0x4136b0], 1
jne 0x403f66
push 0x104
push dword [0x413738]
call ebx
push dword [0x413738]
lea eax, [ebp - 0x1bd4]
push eax
call esi
lea eax, [ebp - 0x1bd4]
push 0x4120e0
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [ebp - 0x1bd4]
push eax
push edi
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x403f75
and dword [ebp - 8], eax
jmp 0x403f75
lea eax, [ebp - 0x17cc]
push eax
push dword [0x413738]
call esi
xor ebx, ebx
cmp dword [ebp - 8], ebx
je 0x403f86
cmp byte [edi], bl
je 0x403f86
inc dword [0x413b88]
push ebx
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll__lopen]
cmp eax, 0xffffffff
mov dword [ebp + 8], eax
jne 0x403ffd
mov esi, 0x100
lea eax, [ebp - 0x9c0]
push esi
push eax
push 3
push dword [0x413a90]
call fcn.0040ab9d
lea eax, [ebp - 0xbc0]
push esi
push eax
push 2
push dword [0x413a90]
call fcn.0040ab9d
mov eax, dword [0x413694]
add esp, 0x20
cmp eax, ebx
je 0x403fda
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
lea eax, [ebp - 0xbc0]
push ebx
push eax
lea eax, [ebp - 0x9c0]
push eax
push dword [0x413698]
call dword [sym.imp.USER32.dll_MessageBoxA]
push 1
pop eax
jmp 0x406a11
push 0
mov ebx, 0x800
push dword [ebp + 8]
lea eax, [ebp - 0x9c0]
push ebx
push eax
call fcn.00406b07
add esp, 0x10
cmp byte [ebp - 0x9bc], 0x20
jne 0x40402a
mov dword [0x413710], 1
movzx eax, word [0x413b94]
mov ecx, dword [0x4136a4]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpA]
push str.
and dword [ecx + eax*4], 0
inc word [0x413b94]
movzx eax, word [0x413b94]
mov ecx, dword [0x4136a4]
and dword [ecx + eax*4], 0
and byte [ebp - 0x9bc], 0
lea eax, [ebp - 0x9c0]
push eax
call edi
test eax, eax
jne 0x4041f6
push 0
lea eax, [ebp - 0x9c0]
push dword [ebp + 8]
push ebx
push eax
call fcn.00406b07
and byte [ebp - 0x9ba], 0
add esp, 0x10
lea eax, [ebp - 0x9c0]
push str.Title:
push eax
call edi
test eax, eax
je 0x4040ad
cmp byte [ebp - 0x9c0], 0
jne 0x404076
cmp byte [ebp - 0x9c0], 0
je 0x4041f6
lea eax, [ebp - 0x9b9]
push eax
push dword [0x413aa8]
call esi
push dword [0x413aa8]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
call edi
mov ebx, eax
cmp ebx, 0xd
jle 0x404101
mov eax, dword [0x413aa8]
push str._INSTALLATION
lea eax, [eax + ebx - 0xd]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x404101
mov eax, dword [0x413aa8]
and byte [eax + ebx - 0xd], 0
push dword [0x413aa8]
call edi
mov edi, eax
cmp edi, 8
jle 0x404133
mov eax, dword [0x413aa8]
push str._INSTALL
lea eax, [eax + edi - 8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x404133
mov eax, dword [0x413aa8]
and byte [eax + edi - 8], 0
cmp dword [0x413ac4], 0
jne 0x40418a
lea eax, [ebp - 0x11c4]
push 0x100
push eax
push 0x19
push dword [0x413a90]
call fcn.0040ab9d
push dword [0x413aa8]
lea eax, [ebp - 0x11c4]
push eax
lea eax, [ebp - 0xec4]
push str._s__s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x20
lea eax, [ebp - 0xec4]
push eax
push dword [0x413698]
call dword [sym.imp.USER32.dll_SetWindowTextA]
push 0
lea eax, [ebp - 0x9c0]
push dword [ebp + 8]
push 0x800
push eax
call fcn.00406b07
add esp, 0x10
cmp byte [ebp - 0x9c0], 0
je 0x406a04
lea eax, [ebp - 0x9c0]
push str.Non_System_File:
push eax
mov dword [ebp - 0xc], 1
call fcn.0040f7e0
pop ecx
test eax, eax
pop ecx
jne 0x40425c
xor ebx, ebx
mov edi, 0x800
push ebx
lea eax, [ebp - 0x9c0]
push dword [ebp + 8]
mov dword [ebp - 0x10], 1
push edi
push eax
call fcn.00406b07
add esp, 0x10
jmp 0x404266
mov esi, 0x100
lea eax, [ebp - 0x9c0]
push esi
push eax
push 4
push dword [0x413a90]
call fcn.0040ab9d
lea eax, [ebp - 0xbc0]
push esi
push eax
push 2
push dword [0x413a90]
call fcn.0040ab9d
mov eax, dword [0x413694]
add esp, 0x20
test eax, eax
je 0x404238
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
lea eax, [ebp - 0xbc0]
push 0
push eax
lea eax, [ebp - 0x9c0]
push eax
push dword [0x413698]
call dword [sym.imp.USER32.dll_MessageBoxA]
push 1
pop esi
jmp 0x406a06
xor ebx, ebx
mov edi, 0x800
mov dword [ebp - 0x10], ebx
lea eax, [ebp - 0x9c0]
push str.Shared_DLL_counter_ignored:
push eax
call fcn.0040f7e0
pop ecx
test eax, eax
pop ecx
jne 0x40429a
push ebx
lea eax, [ebp - 0x9c0]
push dword [ebp + 8]
mov dword [ebp - 4], 1
push edi
push eax
call fcn.00406b07
add esp, 0x10
jmp 0x40429d
mov dword [ebp - 4], ebx
push 0xb
lea eax, [ebp - 0x9c0]
push str.File_Copy:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
je 0x405e61
push 0xc
lea eax, [ebp - 0x9c0]
push str.Shell_Link:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
je 0x405e61
push 0x10
lea eax, [ebp - 0x9c0]
push str.File_Overwrite:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
je 0x405e61
push 0xb
lea eax, [ebp - 0x9c0]
push str.RegDB_Key:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x4047fe
lea eax, [ebp - 0x9b5]
push eax
lea eax, [ebp - 0x10c4]
push eax
call esi
push ebx
lea eax, [ebp - 0x9c0]
push dword [ebp + 8]
push edi
push eax
call fcn.00406b07
push 0xb
lea eax, [ebp - 0x9c0]
push str.RegDB_Val:
push eax
call fcn.0040f730
add esp, 0x1c
test eax, eax
jne 0x4041a3
lea eax, [ebp - 0x9b5]
push eax
lea eax, [ebp - 0x28d8]
push eax
call esi
push 0
lea eax, [ebp - 0x9c0]
push dword [ebp + 8]
push 0x800
push eax
call fcn.00406b07
push 0xb
lea eax, [ebp - 0x9c0]
push str.RegDB_Val:
push eax
call fcn.0040f730
add esp, 0x1c
test eax, eax
je 0x404364
and byte [ebp - 0x19cc], 0
push 0xc
lea eax, [ebp - 0x9c0]
xor ebx, ebx
push str.RegDB_Name:
push eax
mov dword [ebp - 4], ebx
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x4043e5
lea eax, [ebp - 0x9b4]
push eax
lea eax, [ebp - 0x19cc]
push eax
call esi
push ebx
mov edi, 0x800
push dword [ebp + 8]
lea eax, [ebp - 0x9c0]
push edi
push eax
call fcn.00406b07
add esp, 0x10
jmp 0x4043ea
mov edi, 0x800
push 0xc
lea eax, [ebp - 0x9c0]
push str.RegDB_Type:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x404428
lea eax, [ebp - 0x9b4]
push eax
call fcn.0040c37e
push 0
mov dword [ebp - 4], eax
push dword [ebp + 8]
lea eax, [ebp - 0x9c0]
push edi
push eax
call fcn.00406b07
add esp, 0x14
push 0xc
lea eax, [ebp - 0x9c0]
push str.RegDB_Root:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x404477
lea eax, [ebp - 0x9b4]
push eax
call fcn.0040c37e
push 0
mov ebx, eax
push dword [ebp + 8]
lea eax, [ebp - 0x9c0]
push edi
push eax
call fcn.00406b07
add esp, 0x14
cmp ebx, 1
jne 0x404477
cmp dword [0x413784], 0
jne 0x4041a3
push ebx
lea eax, [ebp - 0x34]
push 0x412434
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
push 0x10
call fcn.0040b671
mov ecx, dword [0x413744]
mov edx, dword [0x4136b8]
add esp, 0x10
mov dword [ecx + edx*4], eax
mov eax, dword [0x413744]
mov ecx, dword [0x4136b8]
mov edi, dword [eax + ecx*4]
inc dword [0x4136b8]
lea eax, [ebp - 0x28d8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040b671
pop ecx
mov dword [edi + 0xc], eax
lea ecx, [ebp - 0x28d8]
push ecx
push eax
call esi
and dword [edi], 0
and dword [edi + 8], 0
push 0xb
lea eax, [ebp - 0x9c0]
push str.RegDB_Old:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x4046f9
lea eax, [ebp - 0x34]
mov dword [edi], 1
mov ecx, dword [0x413afc]
push eax
lea eax, [ebp - 0x19cc]
push eax
lea eax, [ebp - 0x10c4]
push eax
mov eax, dword [0x413a84]
push ecx
push 0x1224
push dword [eax]
lea eax, [eax + ecx*4]
push eax
call fcn.0040b793
add esp, 0x1c
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x404680
mov eax, dword [0x413a84]
mov ecx, dword [0x413afc]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x121c], 0
mov eax, dword [0x413a84]
mov ecx, dword [0x413afc]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 4]
mov dword [eax + 0x1218], ecx
mov eax, dword [0x413a84]
mov ecx, dword [0x413afc]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x1214], ebx
mov eax, dword [0x413a84]
mov ecx, dword [0x413afc]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b94]
mov word [eax + 0x1220], cx
mov ecx, dword [0x413afc]
lea eax, [ebp - 0x10c4]
push eax
mov eax, dword [0x413a84]
mov eax, dword [eax + ecx*4]
add eax, 8
push eax
call esi
mov ecx, dword [0x413afc]
lea eax, [ebp - 0x19cc]
push eax
mov eax, dword [0x413a84]
mov eax, dword [eax + ecx*4]
add eax, 0x108
push eax
call esi
mov ecx, dword [0x413afc]
lea eax, [ebp - 0x34]
push eax
mov eax, dword [0x413a84]
mov eax, dword [eax + ecx*4]
add eax, 0x208
push eax
call esi
mov eax, dword [0x413afc]
mov ecx, dword [0x413a84]
mov ebx, dword [ecx + eax*4]
add ebx, 0x214
lea eax, [ebp - 0x9b5]
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 - 0x9c0]
push 0x800
push eax
call fcn.00406b07
push 0xb
lea eax, [ebp - 0x9c0]
push str.RegDB_Old:
push eax
call fcn.0040f730
add esp, 0x1c
test eax, eax
je 0x4045ff
and byte [ebx], 0
mov eax, dword [0x413a84]
mov ecx, dword [0x413afc]
mov eax, dword [eax + ecx*4]
lea ecx, [eax + 0x214]
add eax, 0xa14
push ecx
push eax
call esi
mov eax, dword [0x413afc]
mov ecx, dword [0x413a84]
mov eax, dword [ecx + eax*4]
mov dword [edi + 8], eax
inc dword [0x413afc]
jmp 0x4041a3
lea ebx, [ebp - 0x20d8]
lea eax, [ebp - 0x9b5]
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 - 0x9c0]
push 0x800
push eax
call fcn.00406b07
push 0xb
lea eax, [ebp - 0x9c0]
push str.RegDB_Old:
push eax
call fcn.0040f730
add esp, 0x1c
test eax, eax
je 0x404686
and byte [ebx], 0
lea eax, [ebp - 0x20d8]
push eax
mov eax, dword [ebp - 0xc]
add eax, 0xa14
push eax
call esi
mov eax, dword [ebp - 0xc]
mov cx, word [0x413b94]
mov word [eax + 0x1220], cx
mov dword [edi + 8], eax
jmp 0x4041a3
mov eax, dword [ebp - 4]
mov dword [edi + 4], eax
mov ecx, dword [0x413b9c]
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x19cc]
push eax
lea eax, [ebp - 0x10c4]
push eax
mov eax, dword [0x4136cc]
push ecx
push 0x224
push dword [eax]
lea eax, [eax + ecx*4]
push eax
call fcn.0040b793
add esp, 0x1c
test eax, eax
jne 0x4047eb
mov eax, dword [0x4136cc]
mov ecx, dword [0x413b9c]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x21c], 0
mov eax, dword [0x4136cc]
mov ecx, dword [0x413b9c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x218], ebx
mov eax, dword [0x4136cc]
mov ecx, dword [0x413b9c]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b94]
mov word [eax + 0x220], cx
mov ecx, dword [0x413b9c]
lea eax, [ebp - 0x10c4]
push eax
mov eax, dword [0x4136cc]
mov eax, dword [eax + ecx*4]
add eax, 8
push eax
call esi
mov ecx, dword [0x413b9c]
lea eax, [ebp - 0x19cc]
push eax
mov eax, dword [0x4136cc]
mov eax, dword [eax + ecx*4]
add eax, 0x10c
push eax
call esi
mov ecx, dword [0x413b9c]
lea eax, [ebp - 0x34]
push eax
mov eax, dword [0x4136cc]
mov eax, dword [eax + ecx*4]
add eax, 0x20c
push eax
call esi
mov eax, dword [0x413b9c]
mov ecx, dword [0x4136cc]
mov eax, dword [ecx + eax*4]
mov dword [edi + 8], eax
inc dword [0x413b9c]
jmp 0x4041a3
mov cx, word [0x413b94]
mov word [eax + 0x220], cx
jmp 0x4046f1
push 0xb
lea eax, [ebp - 0x9c0]
push str.File_Edit:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x404a21
lea eax, [ebp - 0x9b5]
push eax
lea eax, [ebp - 0xec4]
push eax
call esi
push ebx
lea eax, [ebp - 0x9c0]
push dword [ebp + 8]
push edi
push eax
call fcn.00406b07
and byte [ebp - 0x11c4], 0
push 0xd
lea eax, [ebp - 0x9c0]
push str.Backup_Copy:
push eax
call fcn.0040f730
add esp, 0x1c
test eax, eax
jne 0x404870
lea eax, [ebp - 0x9b3]
push eax
lea eax, [ebp - 0x11c4]
push eax
call esi
jmp 0x404873
mov dword [ebp - 0xc], ebx
push 2
lea eax, [ebp - 0xec4]
pop edi
push edi
push 0x412408
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x404898
cmp dword [ebp - 0x1c], edi
je 0x40698b
push edi
lea eax, [ebp - 0xec4]
push 0x412404
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x4048ba
cmp dword [ebp - 0x18], edi
je 0x40698b
cmp byte [ebp - 0x11c4], 0
je 0x40698b
lea eax, [ebp - 0xec4]
push 0
push eax
call fcn.0040a933
pop ecx
test eax, eax
pop ecx
jne 0x40698b
lea eax, [ebp - 0xec4]
push eax
lea eax, [ebp - 0xbc0]
push eax
call esi
xor ebx, ebx
xor edi, edi
cmp dword [0x413ab0], ebx
jle 0x404926
mov eax, dword [0x4136a0]
push dword [eax + edi*4]
lea eax, [ebp - 0xec4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
mov eax, dword [0x413ab0]
je 0x40491e
inc edi
cmp edi, eax
jl 0x4048fb
cmp edi, eax
jl 0x4049eb
push 0x20a
call fcn.0040b671
mov edx, dword [0x4136a0]
pop ecx
mov ecx, dword [0x413ab0]
mov dword [edx + ecx*4], eax
cmp dword [0x413710], ebx
je 0x404961
mov ecx, dword [0x4136a0]
lea eax, [ebp - 0xec4]
push eax
mov eax, dword [0x413ab0]
push dword [ecx + eax*4]
call esi
jmp 0x40497c
mov eax, dword [0x413ab0]
mov ecx, dword [0x4136a0]
push dword [ecx + eax*4]
lea eax, [ebp - 0xec4]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
cmp dword [0x413710], ebx
je 0x4049a3
mov ecx, dword [0x4136a0]
lea eax, [ebp - 0x11c4]
push eax
mov eax, dword [0x413ab0]
mov eax, dword [ecx + eax*4]
add eax, 0x104
push eax
call esi
jmp 0x4049c4
mov eax, dword [0x413ab0]
mov ecx, dword [0x4136a0]
mov eax, dword [ecx + eax*4]
add eax, 0x104
push eax
lea eax, [ebp - 0x11c4]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
mov eax, dword [0x413ab0]
mov ecx, dword [0x4136a0]
mov eax, dword [ecx + eax*4]
mov cx, word [0x413b94]
mov word [eax + 0x208], cx
inc dword [0x413ab0]
jmp 0x40698b
mov ecx, dword [0x4136a0]
mov dx, word [0x413b94]
mov eax, edi
shl eax, 2
mov ecx, dword [eax + ecx]
mov word [ecx + 0x208], dx
lea ecx, [ebp - 0x11c4]
push ecx
mov ecx, dword [0x4136a0]
mov eax, dword [eax + ecx]
add eax, 0x104
jmp 0x4068dc
push 0x10
lea eax, [ebp - 0x9c0]
push str.Create_Service:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x404af7
xor edi, edi
cmp dword [0x413a80], ebx
jle 0x404a70
mov eax, dword [0x413b98]
push dword [eax + edi*4]
lea eax, [ebp - 0x9b0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
mov eax, dword [0x413a80]
je 0x404a6c
inc edi
cmp edi, eax
jl 0x404a49
cmp edi, eax
jl 0x404adc
push 0x10c
call fcn.0040b671
mov edx, dword [0x413a80]
pop ecx
mov ecx, dword [0x413b98]
mov dword [ecx + edx*4], eax
mov eax, dword [0x413b98]
mov ecx, dword [0x413a80]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x104], ebx
mov eax, dword [0x413b98]
mov ecx, dword [0x413a80]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b94]
mov word [eax + 0x108], cx
mov ecx, dword [0x413b98]
lea eax, [ebp - 0x9b0]
push eax
mov eax, dword [0x413a80]
push dword [ecx + eax*4]
call esi
inc dword [0x413a80]
jmp 0x40418a
mov eax, dword [0x413b98]
mov cx, word [0x413b94]
mov eax, dword [eax + edi*4]
mov word [eax + 0x108], cx
jmp 0x40418a
push 0xc
lea eax, [ebp - 0x9c0]
push str.Add_Device:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x404ba6
xor edi, edi
cmp dword [0x413ab4], ebx
jle 0x404b5b
lea eax, [ebp - 0x9b4]
push eax
mov eax, dword [0x4136e8]
mov eax, dword [eax + edi*4]
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x404b52
mov eax, dword [0x4136e8]
mov cx, word [0x413b94]
mov eax, dword [eax + edi*4]
mov word [eax + 0x26e], cx
inc edi
cmp edi, dword [0x413ab4]
jl 0x404b1f
xor edi, edi
cmp dword [0x413768], ebx
jle 0x40418a
lea eax, [ebp - 0x9b4]
push eax
mov eax, dword [0x413b0c]
push dword [eax + edi*4]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x404b98
mov eax, dword [0x413b0c]
mov cx, word [0x413b94]
mov eax, dword [eax + edi*4]
mov word [eax + 0x266], cx
inc edi
cmp edi, dword [0x413768]
jl 0x404b69
jmp 0x40418a
push 0xf
lea eax, [ebp - 0x9c0]
push str.Self_Register:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x404cb5
lea eax, [ebp - 0x9b1]
push eax
lea eax, [ebp - 0xbc0]
push eax
call esi
lea eax, [ebp - 0xbc0]
push 1
push eax
call fcn.0040a794
pop ecx
xor edi, edi
cmp dword [0x413ab4], ebx
pop ecx
jle 0x404c4a
mov eax, dword [0x4136e8]
mov eax, dword [eax + edi*4]
add eax, 8
push eax
lea eax, [ebp - 0x10c4]
push eax
call esi
lea eax, [ebp - 0x10c4]
push 1
push eax
call fcn.0040a794
pop ecx
lea eax, [ebp - 0xbc0]
pop ecx
push eax
lea eax, [ebp - 0x10c4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x404c41
mov eax, dword [0x4136e8]
mov cx, word [0x413b94]
mov eax, dword [eax + edi*4]
mov word [eax + 0x26c], cx
inc edi
cmp edi, dword [0x413ab4]
jl 0x404bee
xor edi, edi
cmp dword [0x413768], ebx
jle 0x40418a
mov eax, dword [0x413b0c]
push dword [eax + edi*4]
lea eax, [ebp - 0x10c4]
push eax
call esi
lea eax, [ebp - 0x10c4]
push 1
push eax
call fcn.0040a794
pop ecx
lea eax, [ebp - 0xbc0]
pop ecx
push eax
lea eax, [ebp - 0x10c4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x404ca7
mov eax, dword [0x413b0c]
mov cx, word [0x413b94]
mov eax, dword [eax + edi*4]
mov word [eax + 0x264], cx
inc edi
cmp edi, dword [0x413768]
jl 0x404c58
jmp 0x40418a
push 9
lea eax, [ebp - 0x9c0]
push str.INI_New:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x404e8a
push ebx
lea eax, [ebp - 0x9c0]
push dword [ebp + 8]
push edi
push eax
call fcn.00406b07
push 0xa
lea eax, [ebp - 0x9c0]
push str.INI_File:
push eax
call fcn.0040f730
add esp, 0x1c
test eax, eax
jne 0x4041a3
push 2
lea eax, [ebp - 0x9b6]
pop edi
push edi
push 0x412408
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x404d27
cmp dword [ebp - 0x1c], edi
je 0x404e3b
push edi
lea eax, [ebp - 0x9b6]
push 0x412404
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x404d49
cmp dword [ebp - 0x18], edi
je 0x404e3b
xor ebx, ebx
lea eax, [ebp - 0x9b6]
push ebx
push eax
call fcn.0040a933
pop ecx
test eax, eax
pop ecx
jne 0x404e3b
xor edi, edi
cmp dword [0x413774], ebx
jle 0x404d97
mov eax, dword [0x4136a8]
push dword [eax + edi*4]
lea eax, [ebp - 0x9b6]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
mov eax, dword [0x413774]
je 0x404d8f
inc edi
cmp edi, eax
jl 0x404d6c
cmp edi, eax
jl 0x404e25
push 0x10c
call fcn.0040b671
mov edx, dword [0x413774]
pop ecx
mov ecx, dword [0x4136a8]
mov dword [ecx + edx*4], eax
mov eax, dword [0x413774]
mov ecx, dword [0x4136a8]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x104], ebx
cmp dword [0x413710], ebx
je 0x404de6
mov ecx, dword [0x4136a8]
lea eax, [ebp - 0x9b6]
push eax
mov eax, dword [0x413774]
push dword [ecx + eax*4]
call esi
jmp 0x404e01
mov eax, dword [0x413774]
mov ecx, dword [0x4136a8]
push dword [ecx + eax*4]
lea eax, [ebp - 0x9b6]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
mov eax, dword [0x413774]
mov ecx, dword [0x4136a8]
mov eax, dword [ecx + eax*4]
mov cx, word [0x413b94]
mov word [eax + 0x108], cx
inc dword [0x413774]
jmp 0x404e3b
mov eax, dword [0x4136a8]
mov cx, word [0x413b94]
mov eax, dword [eax + edi*4]
mov word [eax + 0x108], cx
push 0
lea eax, [ebp - 0x9c0]
push dword [ebp + 8]
push 0x800
push eax
call fcn.00406b07
push 4
lea eax, [ebp - 0x9c0]
push str.INI
push eax
call fcn.0040f730
add esp, 0x1c
test eax, eax
jne 0x4041a3
cmp byte [ebp - 0x9bc], 0x46
je 0x4041a3
cmp byte [ebp - 0x9bc], 0x4e
jne 0x404e3b
jmp 0x4041a3
push 0xa
lea eax, [ebp - 0x9c0]
push str.INI_File:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x405138
push 2
lea eax, [ebp - 0x9b6]
push 0x412408
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x404ec8
cmp dword [ebp - 0x1c], 2
je 0x404ee8
push 2
lea eax, [ebp - 0x9b6]
push 0x412404
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x404eed
cmp dword [ebp - 0x18], 2
jne 0x404eed
mov dword [ebp - 0xc], ebx
jmp 0x404ef4
mov dword [ebp - 0xc], 1
cmp dword [0x413710], ebx
je 0x404f0e
lea eax, [ebp - 0x9b6]
push eax
lea eax, [ebp - 0x19cc]
push eax
call esi
jmp 0x404f22
lea eax, [ebp - 0x19cc]
push eax
lea eax, [ebp - 0x9b6]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
push ebx
lea eax, [ebp - 0x9c0]
push dword [ebp + 8]
push edi
push eax
call fcn.00406b07
add esp, 0x10
cmp dword [ebp - 0xc], ebx
je 0x40418a
and dword [ebp - 0xc], 0
push 0xa
lea eax, [ebp - 0x9c0]
push str.INI_Sect:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x4041a3
lea eax, [ebp - 0x9b6]
push eax
lea eax, [ebp - 0xbc0]
push eax
call esi
push 0
lea eax, [ebp - 0x9c0]
push dword [ebp + 8]
push 0x800
push eax
call fcn.00406b07
push 0xa
lea eax, [ebp - 0x9c0]
push str.INI_Item:
push eax
call fcn.0040f730
add esp, 0x1c
test eax, eax
jne 0x4041a3
lea eax, [ebp - 0x9b6]
push eax
lea eax, [ebp - 0x10c4]
push eax
call esi
push 0
lea eax, [ebp - 0x9c0]
push dword [ebp + 8]
push 0x800
push eax
call fcn.00406b07
push 9
lea eax, [ebp - 0x9c0]
push str.INI_Val:
push eax
call fcn.0040f730
add esp, 0x1c
test eax, eax
jne 0x4041a3
push eax
lea eax, [ebp - 0x9c0]
push dword [ebp + 8]
push 0x800
push eax
call fcn.00406b07
push 9
lea eax, [ebp - 0x9c0]
push str.INI_Old:
push eax
call fcn.0040f730
add esp, 0x1c
test eax, eax
jne 0x405027
mov dword [ebp - 0xc], 1
lea edi, [ebp - 0x9b7]
jmp 0x40502c
mov edi, 0x4134d0
mov ecx, dword [0x413720]
lea eax, [ebp - 0x10c4]
push eax
lea eax, [ebp - 0xbc0]
push eax
lea eax, [ebp - 0x19cc]
push eax
mov eax, dword [0x4137a8]
push ecx
push 0x714
push dword [eax]
lea eax, [eax + ecx*4]
push eax
call fcn.0040b793
add esp, 0x1c
test eax, eax
jne 0x40512d
mov eax, dword [0x4137a8]
mov ecx, dword [0x413720]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x70c], 0
mov eax, dword [0x4137a8]
mov ecx, dword [0x413720]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b94]
mov word [eax + 0x710], cx
mov ecx, dword [0x413720]
lea eax, [ebp - 0x19cc]
push eax
mov eax, dword [0x4137a8]
mov eax, dword [eax + ecx*4]
add eax, 8
push eax
call esi
mov ecx, dword [0x413720]
lea eax, [ebp - 0xbc0]
push eax
mov eax, dword [0x4137a8]
mov eax, dword [eax + ecx*4]
add eax, 0x10c
push eax
call esi
mov ecx, dword [0x413720]
lea eax, [ebp - 0x10c4]
push eax
mov eax, dword [0x4137a8]
mov eax, dword [eax + ecx*4]
add eax, 0x20c
push eax
call esi
mov eax, dword [0x4137a8]
mov ecx, dword [0x413720]
push edi
mov eax, dword [eax + ecx*4]
add eax, 0x30c
push eax
call esi
mov eax, dword [0x413720]
mov ecx, dword [0x4137a8]
mov eax, dword [ecx + eax*4]
lea ecx, [eax + 0x30c]
add eax, 0x50c
push ecx
push eax
call esi
inc dword [0x413720]
jmp 0x40698b
push edi
add eax, 0x50c
jmp 0x4068dc
push 0xe
lea eax, [ebp - 0x9c0]
push str.Execute_Path:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
je 0x405d1b
push 0x11
lea eax, [ebp - 0x9c0]
push str.Execute_Program:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
je 0x405d1b
push 0xc
lea eax, [ebp - 0x9c0]
push str.Icon_Group:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x40532b
lea eax, [ebp - 0x9b4]
push eax
lea eax, [ebp - 0xbc0]
push eax
call esi
push ebx
lea eax, [ebp - 0x9c0]
push dword [ebp + 8]
push edi
push eax
call fcn.00406b07
push 0xb
lea eax, [ebp - 0x9c0]
push str.Icon_Name:
push eax
call fcn.0040f730
add esp, 0x1c
test eax, eax
jne 0x4041a3
lea eax, [ebp - 0x9b5]
push eax
lea eax, [ebp - 0x10c4]
push eax
call esi
push 0
lea eax, [ebp - 0x9c0]
push dword [ebp + 8]
push 0x800
push eax
call fcn.00406b07
push 0xa
lea eax, [ebp - 0x9c0]
push str.Icon_Cmd:
push eax
call fcn.0040f730
add esp, 0x1c
test eax, eax
jne 0x4041a3
xor edi, edi
cmp dword [0x4136c8], edi
jle 0x40526a
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
lea eax, [ebp - 0xbc0]
push eax
mov eax, dword [0x413734]
push dword [eax + edi*4]
call ebx
test eax, eax
jne 0x405255
lea eax, [ebp - 0x10c4]
push eax
mov eax, dword [0x413734]
mov eax, dword [eax + edi*4]
add eax, 0x100
push eax
call ebx
test eax, eax
je 0x40525e
inc edi
cmp edi, dword [0x4136c8]
jl 0x405225
cmp edi, dword [0x4136c8]
jl 0x405311
push 0x308
call fcn.0040b671
mov edx, dword [0x4136c8]
pop ecx
mov ecx, dword [0x413734]
mov dword [ecx + edx*4], eax
mov eax, dword [0x413734]
mov ecx, dword [0x4136c8]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x300], 0
mov eax, dword [0x413734]
mov ecx, dword [0x4136c8]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b94]
mov word [eax + 0x304], cx
mov ecx, dword [0x4136c8]
lea eax, [ebp - 0x10c4]
push eax
mov eax, dword [0x413734]
mov eax, dword [eax + ecx*4]
add eax, 0x100
push eax
call esi
mov ecx, dword [0x4136c8]
lea eax, [ebp - 0xbc0]
push eax
mov eax, dword [0x413734]
push dword [eax + ecx*4]
call esi
mov ecx, dword [0x413734]
lea eax, [ebp - 0x9b6]
push eax
mov eax, dword [0x4136c8]
mov eax, dword [ecx + eax*4]
add eax, 0x200
push eax
call esi
inc dword [0x4136c8]
jmp 0x40418a
lea eax, [ebp - 0x9b6]
push eax
mov eax, dword [0x413734]
mov eax, dword [eax + edi*4]
add eax, 0x200
push eax
jmp 0x405ab3
push 0xc
lea eax, [ebp - 0x9c0]
push str.SubSystem:_B
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x405374
lea eax, [ebp - 0x9b5]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040b671
pop ecx
mov dword [0x41379c], eax
lea ecx, [ebp - 0x9b5]
push ecx
push eax
call esi
mov dword [0x4136d0], ebx
jmp 0x40418a
push 0xa
lea eax, [ebp - 0x9c0]
push str.Made_Dir:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x4055ac
lea eax, [ebp - 0x9c0]
push 0x4120e0
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x9b6]
push eax
lea eax, [ebp - 0xbc0]
push eax
call esi
lea eax, [ebp - 0xbc0]
push 0
push eax
call fcn.0040a794
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
pop ecx
pop ecx
lea eax, [ebp - 0xbc0]
push eax
call ebx
mov edi, dword [ebp + 0xc]
push eax
lea eax, [ebp - 0xbc0]
push edi
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x4053f8
lea eax, [ebp - 0xbc0]
push eax
call ebx
and byte [eax + edi], 0
lea eax, [ebp - 0x9b6]
push eax
call ebx
cmp eax, 3
mov dword [ebp - 4], eax
jle 0x40418a
cmp byte [ebp - 0x9b6], 0x5c
jne 0x40541f
cmp byte [ebp - 0x9b5], 0x5c
je 0x405476
cmp dword [0x41311c], 1
jle 0x40543e
movsx eax, byte [ebp - 0x9b6]
push 0x103
push eax
call fcn.0040c27e
pop ecx
pop ecx
jmp 0x405454
movsx eax, byte [ebp - 0x9b6]
mov ecx, dword [str.________________________________H]
mov ax, word [ecx + eax*2]
and eax, 0x103
test eax, eax
je 0x40418a
cmp byte [ebp - 0x9b5], 0x3a
jne 0x40418a
cmp byte [ebp - 0x9b4], 0x5c
jne 0x40418a
xor edi, edi
cmp dword [0x413b88], edi
jle 0x4054cc
mov eax, dword [0x4136fc]
push dword [eax + edi*4]
call ebx
cmp dword [ebp - 4], eax
jge 0x405494
mov eax, dword [ebp - 4]
jmp 0x40549e
mov eax, dword [0x4136fc]
push dword [eax + edi*4]
call ebx
push eax
mov eax, dword [0x4136fc]
push dword [eax + edi*4]
lea eax, [ebp - 0x9b6]
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
mov eax, dword [0x413b88]
je 0x4054c4
inc edi
cmp edi, eax
jl 0x405480
cmp edi, eax
jl 0x405571
push 0x10c
call fcn.0040b671
mov edx, dword [0x413b88]
pop ecx
mov ecx, dword [0x4136fc]
mov dword [ecx + edx*4], eax
mov eax, dword [0x4136fc]
mov ecx, dword [0x413b88]
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov dword [ecx + 0x104], eax
mov ecx, dword [0x4136fc]
mov edx, dword [0x413b88]
mov ecx, dword [ecx + edx*4]
mov word [ecx + 0x108], ax
mov ecx, dword [0x4136fc]
mov edx, dword [0x413b88]
mov ecx, dword [ecx + edx*4]
mov dx, word [0x413b94]
mov word [ecx + 0x10a], dx
cmp dword [0x413710], eax
je 0x405551
mov ecx, dword [0x413b88]
lea eax, [ebp - 0x9b6]
push eax
mov eax, dword [0x4136fc]
push dword [eax + ecx*4]
jmp 0x405758
mov eax, dword [0x4136fc]
mov ecx, dword [0x413b88]
push dword [eax + ecx*4]
lea eax, [ebp - 0x9b6]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
jmp 0x40575a
mov eax, dword [0x4136fc]
shl edi, 2
push dword [edi + eax]
call ebx
cmp dword [ebp - 4], eax
jge 0x405588
mov eax, dword [ebp - 4]
jmp 0x405592
mov eax, dword [0x4136fc]
push dword [edi + eax]
call ebx
mov ecx, dword [0x4136fc]
mov ecx, dword [edi + ecx]
and byte [ecx + eax], 0
mov eax, dword [0x4136fc]
mov eax, dword [edi + eax]
jmp 0x40578a
push 0xb
lea eax, [ebp - 0x9c0]
push str.File_Tree:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x40579d
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp - 0x9b5]
push eax
call ebx
lea edi, [ebp + eax - 0x9b9]
push str..
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x4055f2
and byte [edi], al
lea eax, [ebp - 0x9c0]
push 0x2a
push eax
call fcn.0040be4c
pop ecx
test eax, eax
pop ecx
jne 0x40562c
lea eax, [ebp - 0x9c0]
push 0x3f
push eax
call fcn.0040be4c
pop ecx
test eax, eax
pop ecx
jne 0x40562c
lea eax, [ebp - 0x9c0]
push 0x4120e0
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x9b5]
push eax
call ebx
cmp eax, 3
jle 0x40418a
cmp byte [ebp - 0x9b5], 0x5c
jne 0x405650
cmp byte [ebp - 0x9b4], 0x5c
je 0x4056a7
cmp dword [0x41311c], 1
jle 0x40566f
movsx eax, byte [ebp - 0x9b5]
push 0x103
push eax
call fcn.0040c27e
pop ecx
pop ecx
jmp 0x405685
movsx eax, byte [ebp - 0x9b5]
mov ecx, dword [str.________________________________H]
mov ax, word [ecx + eax*2]
and eax, 0x103
test eax, eax
je 0x40418a
cmp byte [ebp - 0x9b4], 0x3a
jne 0x40418a
cmp byte [ebp - 0x9b3], 0x5c
jne 0x40418a
xor edi, edi
cmp dword [0x413b88], edi
jle 0x4056dc
mov eax, dword [0x4136fc]
push dword [eax + edi*4]
lea eax, [ebp - 0x9b5]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
mov eax, dword [0x413b88]
je 0x4056d4
inc edi
cmp edi, eax
jl 0x4056b1
cmp edi, eax
jl 0x405765
push 0x10c
call fcn.0040b671
mov edx, dword [0x413b88]
pop ecx
mov ecx, dword [0x4136fc]
mov dword [ecx + edx*4], eax
mov eax, dword [0x4136fc]
mov ecx, dword [0x413b88]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x104], 0
mov eax, dword [0x4136fc]
mov ecx, dword [0x413b88]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b94]
mov word [eax + 0x108], cx
mov eax, dword [0x4136fc]
mov ecx, dword [0x413b88]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b94]
mov word [eax + 0x10a], cx
mov ecx, dword [0x4136fc]
lea eax, [ebp - 0x9b5]
push eax
mov eax, dword [0x413b88]
push dword [ecx + eax*4]
call esi
inc dword [0x413b88]
jmp 0x40418a
mov ecx, dword [0x4136fc]
mov dx, word [0x413b94]
mov eax, edi
shl eax, 2
mov ecx, dword [eax + ecx]
mov word [ecx + 0x108], dx
mov ecx, dword [0x4136fc]
mov eax, dword [eax + ecx]
mov cx, word [0x413b94]
mov word [eax + 0x10a], cx
jmp 0x40418a
push 0xc
lea eax, [ebp - 0x9c0]
push str.RegDB_Tree:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x405900
lea eax, [ebp - 0x9b4]
push eax
lea eax, [ebp - 0x10c4]
push eax
call esi
push ebx
lea eax, [ebp - 0x9c0]
push dword [ebp + 8]
push edi
push eax
call fcn.00406b07
push 0xc
lea eax, [ebp - 0x9c0]
push str.RegDB_Root:
push eax
mov dword [ebp - 4], ebx
call fcn.0040f730
add esp, 0x1c
test eax, eax
jne 0x40581c
lea eax, [ebp - 0x9b4]
push eax
call fcn.0040c37e
push ebx
mov dword [ebp - 4], eax
push dword [ebp + 8]
lea eax, [ebp - 0x9c0]
push edi
push eax
call fcn.00406b07
add esp, 0x14
xor edi, edi
cmp dword [0x413b04], ebx
jle 0x405867
mov eax, dword [0x4137c0]
push dword [eax + edi*4]
lea eax, [ebp - 0x10c4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
mov eax, dword [0x4137c0]
jne 0x405852
mov ecx, dword [eax + edi*4]
mov edx, dword [ebp - 4]
cmp edx, dword [ecx + 0x100]
je 0x40585b
inc edi
cmp edi, dword [0x413b04]
jl 0x40582b
cmp edi, dword [0x413b04]
jl 0x4058ea
push 0x10c
call fcn.0040b671
mov edx, dword [0x413b04]
pop ecx
mov ecx, dword [0x4137c0]
mov dword [ecx + edx*4], eax
mov eax, dword [0x4137c0]
mov ecx, dword [0x413b04]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x104], ebx
mov eax, dword [0x4137c0]
mov ecx, dword [0x413b04]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 4]
mov dword [eax + 0x100], ecx
mov eax, dword [0x4137c0]
mov ecx, dword [0x413b04]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b94]
mov word [eax + 0x108], cx
mov ecx, dword [0x4137c0]
lea eax, [ebp - 0x10c4]
push eax
mov eax, dword [0x413b04]
push dword [ecx + eax*4]
call esi
inc dword [0x413b04]
jmp 0x4041a3
mov eax, dword [eax + edi*4]
mov cx, word [0x413b94]
mov word [eax + 0x108], cx
jmp 0x4041a3
push 4
lea eax, [ebp - 0x9c0]
push str.
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x40596b
lea eax, [ebp - 0x9c0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [0x41378c]
mov edx, dword [0x41376c]
add edx, ecx
mov ecx, dword [0x4136a4]
sub edx, eax
dec edx
inc word [0x413b94]
movzx eax, word [0x413b94]
mov dword [0x413794], edx
mov dword [ecx + eax*4], ebx
xor eax, eax
cmp byte [ebp - 0x9bc], 0x20
sete al
mov dword [0x413710], eax
jmp 0x40418a
push 8
lea eax, [ebp - 0x9c0]
push str.Source:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x4059ea
lea eax, [ebp - 0x9b8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040b671
mov edx, dword [0x4136a4]
pop ecx
movzx ecx, word [0x413b94]
mov dword [edx + ecx*4], eax
mov ecx, dword [0x4136a4]
lea eax, [ebp - 0x9b8]
push eax
movzx eax, word [0x413b94]
push dword [ecx + eax*4]
call esi
lea eax, [ebp - 0x9c0]
push 0x7c
push eax
call fcn.0040be4c
pop ecx
test eax, eax
pop ecx
je 0x40418a
mov dword [0x41372c], 1
jmp 0x40418a
push 0xf
lea eax, [ebp - 0x9c0]
push str.Uninstall_MIF:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x405a15
lea eax, [ebp - 0x9b1]
push eax
push 0x4137e0
jmp 0x405ab3
push 0xe
lea eax, [ebp - 0x9c0]
push str.Manufacturer:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x405a3d
lea eax, [ebp - 0x9b2]
push eax
push 0x413860
jmp 0x405ab3
push 9
lea eax, [ebp - 0x9c0]
push str.Product:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x405a65
lea eax, [ebp - 0x9b7]
push eax
push 0x4138e0
jmp 0x405ab3
push 0x10
lea eax, [ebp - 0x9c0]
push str.Version_Number:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x405a8d
lea eax, [ebp - 0x9b0]
push eax
push 0x413960
jmp 0x405ab3
push 0xf
lea eax, [ebp - 0x9c0]
push str.Serial_Number:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x405aba
lea eax, [ebp - 0x9b1]
push eax
push 0x4139e0
call esi
jmp 0x40418a
lea eax, [ebp - 0x9c0]
push str.User_Rights:_Admin
push eax
call fcn.0040f7e0
pop ecx
test eax, eax
pop ecx
jne 0x405b10
cmp dword [ebp - 0x24], ebx
jne 0x40418a
cmp dword [0x4136b0], 1
jne 0x40418a
push 1
xor ebx, ebx
pop edi
push 0xe0000000
push ebx
push ebx
mov dword [ebp - 0x24], edi
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
cmp eax, ebx
je 0x40699a
push eax
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x40418a
push 0xd
lea eax, [ebp - 0x9c0]
push str.Per_User_ID:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x405cab
mov edi, 0x100
push edi
call fcn.0040b671
pop ecx
mov dword [0x413784], eax
lea ecx, [ebp - 0x9b3]
push ecx
push eax
call esi
cmp dword [0x4136ec], ebx
je 0x40418a
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 0x405c08
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], edi
push eax
lea eax, [ebp - 0xbc0]
push eax
lea eax, [ebp - 0x38]
push eax
push 0
push str.Start_Menu
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x405bff
cmp byte [ebp - 0xbc0], al
je 0x405bff
lea eax, [ebp - 0xbc0]
push eax
lea eax, [ebp - 0xdc4]
push eax
call esi
lea eax, [ebp - 0xdc4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp + eax - 0xdc4]
lea ecx, [ebp - 0xdc4]
cmp eax, ecx
jbe 0x405bfb
cmp byte [eax], 0x5c
je 0x405be1
dec eax
lea ecx, [ebp - 0xdc4]
cmp eax, ecx
ja 0x405bd1
lea ecx, [ebp - 0xdc4]
cmp eax, ecx
jbe 0x405bfb
dec eax
lea ecx, [ebp - 0xdc4]
cmp eax, ecx
jbe 0x405bfb
cmp byte [eax], 0x5c
jne 0x405beb
and byte [eax + 1], 0
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [0x4136b0], 1
jne 0x40418a
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 0x40418a
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], edi
push eax
lea eax, [ebp - 0xbc0]
push eax
lea eax, [ebp - 0x3c]
push eax
push 0
push str.Common_Start_Menu
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x405c9d
cmp byte [ebp - 0xbc0], al
je 0x405c9d
lea eax, [ebp - 0xbc0]
push eax
lea eax, [ebp - 0x12c8]
push eax
call esi
lea eax, [ebp - 0x12c8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp + eax - 0x12c8]
lea ecx, [ebp - 0x12c8]
cmp eax, ecx
jbe 0x405c99
cmp byte [eax], 0x5c
je 0x405c99
dec eax
jmp 0x405c87
and byte [eax + 1], 0
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x40418a
push 0x15
lea eax, [ebp - 0x9c0]
push str.Delete_in_use_files:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x40418a
push 2
lea eax, [ebp - 0x9ab]
push 0x4121f4
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x405cf2
mov dword [0x413798], 1
jmp 0x40418a
push 2
lea eax, [ebp - 0x9ab]
push 0x4121f0
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x40418a
and dword [0x413798], eax
jmp 0x40418a
xor eax, eax
cmp byte [ebp - 0x9b7], 0x72
mov dword [ebp - 8], ebx
setne al
dec eax
and eax, 3
add eax, 0xe
cmp dword [0x413aa0], ebx
mov dword [ebp - 4], eax
jle 0x405d74
mov eax, dword [0x413748]
mov ecx, dword [ebp - 8]
push dword [eax + ecx*4]
mov eax, dword [ebp - 4]
lea eax, [ebp + eax - 0x9c0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
mov eax, dword [0x413aa0]
je 0x405d69
inc dword [ebp - 8]
cmp dword [ebp - 8], eax
jl 0x405d3c
mov ecx, dword [ebp - 8]
cmp ecx, eax
jl 0x405e46
push 0x20c
call fcn.0040b671
mov edx, dword [0x413aa0]
pop ecx
mov ecx, dword [0x413748]
mov dword [ecx + edx*4], eax
mov eax, dword [0x413748]
mov ecx, dword [0x413aa0]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x204], ebx
mov eax, dword [0x413748]
mov ecx, dword [0x413aa0]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b94]
mov word [eax + 0x208], cx
mov eax, dword [ebp - 4]
mov ecx, dword [0x413aa0]
lea eax, [ebp + eax - 0x9c0]
push eax
mov eax, dword [0x413748]
push dword [eax + ecx*4]
call esi
mov eax, dword [0x413aa0]
mov ecx, dword [0x413748]
push ebx
mov eax, dword [ecx + eax*4]
push dword [ebp + 8]
and byte [eax + 0x104], 0
lea eax, [ebp - 0x9c0]
push edi
push eax
call fcn.00406b07
push 0xe
lea eax, [ebp - 0x9c0]
push str.Execute_Name:
push eax
call fcn.0040f730
add esp, 0x1c
test eax, eax
jne 0x405e38
mov ecx, dword [0x413748]
lea eax, [ebp - 0x9b2]
push eax
mov eax, dword [0x413aa0]
mov eax, dword [ecx + eax*4]
add eax, 0x104
push eax
call esi
jmp 0x405e3b
mov dword [ebp - 0xc], ebx
inc dword [0x413aa0]
jmp 0x40698b
mov eax, dword [0x413748]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b94]
mov word [eax + 0x208], cx
jmp 0x40698b
and dword [ebp - 8], 0
and byte [ebp - 0x16c8], 0
and byte [ebp - 0xc0], 0
lea eax, [ebp - 0x9c0]
push 0x7c
push eax
call fcn.0040be4c
mov ebx, eax
pop ecx
test ebx, ebx
pop ecx
je 0x405ea5
lea eax, [ebx + 1]
push eax
lea eax, [ebp - 0xc0]
push eax
call esi
cmp byte [ebx - 1], 0x20
jne 0x405ea2
and byte [ebx - 1], 0
jmp 0x405ea5
and byte [ebx], 0
cmp byte [ebp - 0x9c0], 0x53
jne 0x405f2d
lea eax, [ebp - 0x9b4]
push eax
lea eax, [ebp - 0x1c0]
push eax
call esi
cmp dword [0x413784], 0
je 0x405fbd
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp - 0xdc4]
push eax
call ebx
push eax
lea eax, [ebp - 0xdc4]
push eax
lea eax, [ebp - 0x1c0]
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x405fbd
lea eax, [ebp - 0x12c8]
push eax
call ebx
push eax
lea eax, [ebp - 0x12c8]
push eax
lea eax, [ebp - 0x1c0]
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
je 0x405fbd
and byte [ebp - 0x1c0], 0
jmp 0x405fbd
cmp byte [ebp - 0x9bb], 0x43
jne 0x405f48
lea eax, [ebp - 0x9b5]
push eax
lea eax, [ebp - 0x1c0]
push eax
call esi
jmp 0x405fbd
lea eax, [ebp - 0x9b0]
push eax
lea eax, [ebp - 0x1c0]
push eax
call esi
cmp dword [0x4136ec], 0
mov dword [ebp - 8], 1
je 0x405fbd
lea eax, [ebp - 0x20]
push eax
push 0x1f
push 0
push dword [0x412058]
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x405fbd
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], 0x100
push eax
lea eax, [ebp - 0x1bd0]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x1c0]
push 0
push eax
push dword [ebp - 0x20]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x405fb4
and dword [ebp - 8], eax
push dword [ebp - 0x20]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor ebx, ebx
lea eax, [ebp - 0x9c0]
push ebx
push dword [ebp + 8]
push edi
push eax
call fcn.00406b07
and byte [ebp - 0xcc0], bl
push 0xb
lea eax, [ebp - 0x9c0]
push str.Link_Info:
push eax
call fcn.0040f730
add esp, 0x1c
test eax, eax
jne 0x406014
lea eax, [ebp - 0x9b5]
push eax
lea eax, [ebp - 0x16c8]
push eax
call esi
push ebx
lea eax, [ebp - 0x9c0]
push dword [ebp + 8]
push edi
push eax
call fcn.00406b07
add esp, 0x10
push 0xd
lea eax, [ebp - 0x9c0]
push str.Backup_Copy:
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x40604a
lea eax, [ebp - 0x9b3]
push eax
lea eax, [ebp - 0xcc0]
push eax
call esi
mov dword [0x413a98], 1
jmp 0x40604d
mov dword [ebp - 0xc], ebx
push 2
lea eax, [ebp - 0x1c0]
pop edi
push edi
push 0x412408
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x406072
cmp dword [ebp - 0x1c], edi
je 0x4067e5
push edi
lea eax, [ebp - 0x1c0]
push 0x412404
push eax
call fcn.0040f730
add esp, 0xc
test eax, eax
jne 0x406094
cmp dword [ebp - 0x18], edi
je 0x4067e5
cmp dword [ebp - 8], ebx
je 0x4060a6
cmp byte [ebp - 0xcc0], 0
je 0x4067e5
cmp byte [ebp - 0x1c0], 0
je 0x4067e5
lea eax, [ebp - 0x1c0]
push ebx
push eax
call fcn.0040a933
pop ecx
test eax, eax
pop ecx
jne 0x406720
lea eax, [ebp - 0x1c0]
push eax
lea eax, [ebp - 0xbc0]
push eax
call esi
lea eax, [ebp - 0xbc0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp + eax - 0xbc1]
lea ecx, [ebp - 0xbc0]
cmp eax, ecx
jbe 0x406103
cmp byte [eax], 0x5c
je 0x406108
and byte [eax], 0
dec eax
jmp 0x4060ee
cmp byte [eax], 0x5c
jne 0x40610b
and byte [eax], 0
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
lea eax, [ebp - 0x1cd8]
push eax
lea eax, [ebp - 0xbc0]
push eax
call ebx
test eax, eax
je 0x406427
lea eax, [ebp - 0x17cc]
push eax
lea eax, [ebp - 0xbc0]
push eax
call ebx
test eax, eax
je 0x406427
push dword [0x413738]
lea eax, [ebp - 0xbc0]
push eax
call ebx
test eax, eax
je 0x406427
lea eax, [ebp - 0x1ad0]
push eax
lea eax, [ebp - 0xbc0]
push eax
call ebx
test eax, eax
je 0x406427
mov ecx, dword [0x413ab4]
xor ebx, ebx
push ebx
lea eax, [ebp - 0x1c0]
push ebx
push eax
mov eax, dword [0x4136e8]
push ecx
push 0x27c
push dword [eax]
lea eax, [eax + ecx*4]
push eax
call fcn.0040b793
mov edi, eax
add esp, 0x1c
cmp edi, ebx
jne 0x4063d3
mov eax, dword [0x4136e8]
mov ecx, dword [0x413ab4]
mov eax, dword [eax + ecx*4]
mov word [eax + 0x274], bx
mov eax, dword [0x413ab4]
mov ecx, dword [0x4136e8]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x264], ebx
cmp dword [0x413710], ebx
je 0x4061f2
mov ecx, dword [0x4136e8]
lea eax, [ebp - 0x1c0]
push eax
mov eax, dword [0x413ab4]
mov eax, dword [ecx + eax*4]
add eax, 8
push eax
call esi
jmp 0x406211
mov eax, dword [0x413ab4]
mov ecx, dword [0x4136e8]
mov eax, dword [ecx + eax*4]
add eax, 8
push eax
lea eax, [ebp - 0x1c0]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
cmp dword [0x413710], ebx
je 0x406238
mov ecx, dword [0x4136e8]
lea eax, [ebp - 0xcc0]
push eax
mov eax, dword [0x413ab4]
mov eax, dword [ecx + eax*4]
add eax, 0x10c
push eax
call esi
jmp 0x406259
mov eax, dword [0x413ab4]
mov ecx, dword [0x4136e8]
mov eax, dword [ecx + eax*4]
add eax, 0x10c
push eax
lea eax, [ebp - 0xcc0]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
mov eax, dword [0x4136e8]
mov ecx, dword [0x413ab4]
cmp dword [ebp - 4], ebx
mov eax, dword [eax + ecx*4]
mov word [eax + 0x26e], bx
mov eax, dword [0x4136e8]
mov ecx, dword [0x413ab4]
mov eax, dword [eax + ecx*4]
mov word [eax + 0x26c], bx
mov eax, dword [0x4136e8]
mov ecx, dword [0x413ab4]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b94]
mov word [eax + 0x270], cx
mov eax, dword [0x413ab4]
mov ecx, dword [0x4136e8]
mov eax, dword [ecx + eax*4]
mov cx, word [0x413b94]
mov word [eax + 0x272], cx
jne 0x4062f6
mov eax, dword [0x4136e8]
mov ecx, dword [0x413ab4]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b94]
mov word [eax + 0x276], cx
mov eax, dword [0x413ab4]
mov ecx, dword [0x4136e8]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x278], 1
jmp 0x40630b
mov eax, dword [0x413ab4]
mov ecx, dword [0x4136e8]
mov eax, dword [ecx + eax*4]
mov word [eax + 0x276], bx
cmp dword [ebp - 8], ebx
jne 0x406333
cmp byte [ebp - 0xcc0], 0
jne 0x406333
mov eax, dword [0x413ab4]
mov ecx, dword [0x4136e8]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x268], 1
jmp 0x406347
mov eax, dword [0x413ab4]
mov ecx, dword [0x4136e8]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x268], ebx
mov ecx, dword [0x413ab4]
lea eax, [ebp - 0xc0]
push eax
mov eax, dword [0x4136e8]
mov eax, dword [eax + ecx*4]
add eax, 0x210
push eax
call esi
mov eax, dword [0x413ab4]
mov ecx, dword [0x4136e8]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x260], ebx
cmp byte [ebp - 0x16c8], 0
je 0x4063c8
lea eax, [ebp - 0x16c8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040b671
mov edx, dword [0x413ab4]
pop ecx
mov ecx, dword [0x4136e8]
mov ecx, dword [ecx + edx*4]
mov dword [ecx + 0x260], eax
mov ecx, dword [0x4136e8]
lea eax, [ebp - 0x16c8]
push eax
mov eax, dword [0x413ab4]
mov eax, dword [ecx + eax*4]
push dword [eax + 0x260]
call esi
inc dword [0x413ab4]
jmp 0x40698b
mov ax, word [0x413b94]
cmp dword [ebp - 4], ebx
mov word [edi + 0x270], ax
jne 0x4063f8
mov ax, word [0x413b94]
inc dword [edi + 0x278]
mov word [edi + 0x276], ax
cmp byte [ebp - 0xcc0], 0
je 0x40689d
lea eax, [ebp - 0xcc0]
push eax
lea eax, [edi + 0x10c]
push eax
call esi
mov ax, word [0x413b94]
mov word [edi + 0x272], ax
jmp 0x40689d
xor edi, edi
cmp dword [0x413768], edi
jle 0x406458
mov eax, dword [0x413b0c]
push dword [eax + edi*4]
lea eax, [ebp - 0x1c0]
push eax
call ebx
test eax, eax
mov eax, dword [0x413768]
je 0x406450
inc edi
cmp edi, eax
jl 0x406431
cmp edi, eax
jl 0x40669e
push 0x274
call fcn.0040b671
mov edx, dword [0x413768]
pop ecx
mov ecx, dword [0x413b0c]
xor edi, edi
mov dword [ecx + edx*4], eax
mov eax, dword [0x413b0c]
mov ecx, dword [0x413768]
mov eax, dword [eax + ecx*4]
mov word [eax + 0x26c], di
mov eax, dword [0x413768]
mov ecx, dword [0x413b0c]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 0x10]
mov dword [eax + 0x25c], ecx
cmp dword [0x413710], edi
je 0x4064c1
mov ecx, dword [0x413b0c]
lea eax, [ebp - 0x1c0]
push eax
mov eax, dword [0x413768]
push dword [ecx + eax*4]
call esi
jmp 0x4064dc
mov eax, dword [0x413768]
mov ecx, dword [0x413b0c]
push dword [ecx + eax*4]
lea eax, [ebp - 0x1c0]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
cmp dword [0x413710], edi
je 0x406503
mov ecx, dword [0x413b0c]
lea eax, [ebp - 0xcc0]
push eax
mov eax, dword [0x413768]
mov eax, dword [ecx + eax*4]
add eax, 0x104
push eax
call esi
jmp 0x406524
mov eax, dword [0x413768]
mov ecx, dword [0x413b0c]
mov eax, dword [ecx + eax*4]
add eax, 0x104
push eax
lea eax, [ebp - 0xcc0]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
mov eax, dword [0x413b0c]
mov ecx, dword [0x413768]
cmp dword [ebp - 4], edi
mov eax, dword [eax + ecx*4]
mov word [eax + 0x266], di
mov eax, dword [0x413b0c]
mov ecx, dword [0x413768]
mov eax, dword [eax + ecx*4]
mov word [eax + 0x264], di
mov eax, dword [0x413b0c]
mov ecx, dword [0x413768]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b94]
mov word [eax + 0x268], cx
mov eax, dword [0x413768]
mov ecx, dword [0x413b0c]
mov eax, dword [ecx + eax*4]
mov cx, word [0x413b94]
mov word [eax + 0x26a], cx
jne 0x4065c1
mov eax, dword [0x413b0c]
mov ecx, dword [0x413768]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b94]
mov word [eax + 0x26e], cx
mov eax, dword [0x413768]
mov ecx, dword [0x413b0c]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x270], 1
jmp 0x4065d6
mov eax, dword [0x413768]
mov ecx, dword [0x413b0c]
mov eax, dword [ecx + eax*4]
mov word [eax + 0x26e], di
cmp dword [ebp - 8], edi
jne 0x4065fe
cmp byte [ebp - 0xcc0], 0
jne 0x4065fe
mov eax, dword [0x413768]
mov ecx, dword [0x413b0c]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x260], 1
jmp 0x406612
mov eax, dword [0x413768]
mov ecx, dword [0x413b0c]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x260], edi
mov ecx, dword [0x413768]
lea eax, [ebp - 0xc0]
push eax
mov eax, dword [0x413b0c]
mov eax, dword [eax + ecx*4]
add eax, 0x208
push eax
call esi
mov eax, dword [0x413768]
mov ecx, dword [0x413b0c]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x258], edi
cmp byte [ebp - 0x16c8], 0
je 0x406693
lea eax, [ebp - 0x16c8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040b671
mov edx, dword [0x413768]
pop ecx
mov ecx, dword [0x413b0c]
mov ecx, dword [ecx + edx*4]
mov dword [ecx + 0x258], eax
mov ecx, dword [0x413b0c]
lea eax, [ebp - 0x16c8]
push eax
mov eax, dword [0x413768]
mov eax, dword [ecx + eax*4]
push dword [eax + 0x258]
call esi
inc dword [0x413768]
jmp 0x40698b
mov eax, dword [0x413b0c]
mov cx, word [0x413b94]
shl edi, 2
cmp dword [ebp - 4], 0
mov eax, dword [edi + eax]
mov word [eax + 0x268], cx
jne 0x4066e1
mov eax, dword [0x413b0c]
mov cx, word [0x413b94]
mov eax, dword [edi + eax]
mov word [eax + 0x26e], cx
mov eax, dword [0x413b0c]
mov eax, dword [edi + eax]
inc dword [eax + 0x270]
cmp byte [ebp - 0xcc0], 0
je 0x406930
lea eax, [ebp - 0xcc0]
push eax
mov eax, dword [0x413b0c]
mov eax, dword [edi + eax]
add eax, 0x104
push eax
call esi
mov eax, dword [0x413b0c]
mov cx, word [0x413b94]
mov eax, dword [edi + eax]
mov word [eax + 0x26a], cx
jmp 0x406930
xor edi, edi
cmp dword [0x4136d4], ebx
jle 0x406751
mov eax, dword [0x413700]
push dword [eax + edi*4]
lea eax, [ebp - 0x1c0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
mov eax, dword [0x4136d4]
je 0x40674d
inc edi
cmp edi, eax
jl 0x40672a
cmp edi, eax
jl 0x406773
lea eax, [ebp - 0x16c8]
push eax
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0x1c0]
push eax
call fcn.00406a16
add esp, 0xc
jmp 0x40698b
mov eax, dword [0x413700]
mov cx, word [0x413b94]
shl edi, 2
mov eax, dword [edi + eax]
mov word [eax + 0x268], cx
lea eax, [ebp - 0xc0]
push eax
mov eax, dword [0x413700]
mov eax, dword [edi + eax]
add eax, 0x208
push eax
call esi
cmp byte [ebp - 0x16c8], 0
je 0x40698b
lea eax, [ebp - 0x16c8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040b671
pop ecx
mov ecx, dword [0x413700]
mov ecx, dword [edi + ecx]
mov dword [ecx + 0x258], eax
lea eax, [ebp - 0x16c8]
push eax
mov eax, dword [0x413700]
jmp 0x406980
cmp byte [ebp - 0xc0], 0
jne 0x4067fb
cmp byte [ebp - 0x16c8], 0
je 0x40698b
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
lea eax, [ebp - 0x1cd8]
push eax
lea eax, [ebp - 0xbc0]
push eax
call ebx
test eax, eax
je 0x4068e2
lea eax, [ebp - 0x17cc]
push eax
lea eax, [ebp - 0xbc0]
push eax
call ebx
test eax, eax
je 0x4068e2
push dword [0x413738]
lea eax, [ebp - 0xbc0]
push eax
call ebx
test eax, eax
je 0x4068e2
lea eax, [ebp - 0x1ad0]
push eax
lea eax, [ebp - 0xbc0]
push eax
call ebx
test eax, eax
je 0x4068e2
xor ebx, ebx
lea eax, [ebp - 0x1c0]
push ebx
push ebx
push eax
mov eax, dword [0x4136e8]
push dword [0x413ab4]
push 0x27c
push dword [eax]
push ebx
call fcn.0040b793
mov edi, eax
add esp, 0x1c
cmp edi, ebx
je 0x406751
mov ax, word [0x413b94]
mov word [edi + 0x274], ax
lea eax, [ebp - 0xc0]
push eax
lea eax, [edi + 0x210]
push eax
call esi
cmp byte [ebp - 0x16c8], 0
je 0x40698b
lea eax, [ebp - 0x16c8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040b671
pop ecx
mov dword [edi + 0x260], eax
lea ecx, [ebp - 0x16c8]
push ecx
push eax
jmp 0x406989
xor edi, edi
cmp dword [0x413768], edi
jle 0x406751
mov eax, dword [0x413b0c]
push dword [eax + edi*4]
lea eax, [ebp - 0x1c0]
push eax
call ebx
test eax, eax
mov eax, dword [0x413768]
je 0x40690f
inc edi
cmp edi, eax
jl 0x4068f0
cmp edi, eax
jge 0x406751
mov eax, dword [0x413b0c]
mov cx, word [0x413b94]
shl edi, 2
mov eax, dword [edi + eax]
mov word [eax + 0x26c], cx
lea eax, [ebp - 0xc0]
push eax
mov eax, dword [0x413b0c]
mov eax, dword [edi + eax]
add eax, 0x208
push eax
call esi
cmp byte [ebp - 0x16c8], 0
je 0x40698b
lea eax, [ebp - 0x16c8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040b671
pop ecx
mov ecx, dword [0x413b0c]
mov ecx, dword [edi + ecx]
mov dword [ecx + 0x258], eax
lea eax, [ebp - 0x16c8]
push eax
mov eax, dword [0x413b0c]
mov eax, dword [edi + eax]
push dword [eax + 0x258]
call esi
cmp dword [ebp - 0xc], 0
je 0x4041a3
jmp 0x40418a
mov esi, 0x100
lea eax, [ebp - 0x1dd8]
push esi
push eax
push 0x19
push dword [0x413a90]
call fcn.0040ab9d
lea eax, [ebp - 0x1ed8]
push esi
push eax
push 0x43
push dword [0x413a90]
call fcn.0040ab9d
mov eax, dword [0x413694]
add esp, 0x20
cmp eax, ebx
je 0x4069dc
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
lea eax, [ebp - 0x1dd8]
push ebx
push eax
lea eax, [ebp - 0x1ed8]
push eax
push dword [0x413698]
call dword [sym.imp.USER32.dll_MessageBoxA]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll__lclose]
mov eax, edi
jmp 0x406a11
xor esi, esi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll__lclose]
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret