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.0040c1a0
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.0040b356
cmp eax, edi
pop ecx
jbe 0x403d72
and byte [eax - 1], 0
xor ebx, ebx
push ebx
push edi
call fcn.0040a622
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.0040b488
mov edx, dword [0x413b28]
pop ecx
mov ecx, dword [0x41369c]
push dword [ebp + 8]
mov dword [ecx + edx*4], eax
mov eax, dword [0x41369c]
mov ecx, dword [0x413b28]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x104], ebx
mov eax, dword [0x41369c]
mov ecx, dword [0x413b28]
mov eax, dword [eax + ecx*4]
mov word [eax + 0x108], bx
mov eax, dword [0x41369c]
mov ecx, dword [0x413b28]
mov eax, dword [eax + ecx*4]
mov word [eax + 0x10a], 0x7fff
mov eax, dword [0x41369c]
mov ecx, dword [0x413b28]
mov edi, dword [eax + ecx*4]
push edi
call esi
push 1
push edi
call fcn.0040a622
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.0040f540
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 [0x413650], 1
jne 0x403f66
push 0x104
push dword [0x4136d8]
call ebx
push dword [0x4136d8]
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.0040f540
add esp, 0xc
test eax, eax
jne 0x403f75
and dword [ebp - 8], eax
jmp 0x403f75
lea eax, [ebp - 0x17cc]
push eax
push dword [0x4136d8]
call esi
xor ebx, ebx
cmp dword [ebp - 8], ebx
je 0x403f86
cmp byte [edi], bl
je 0x403f86
inc dword [0x413b28]
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 [0x413a30]
call fcn.0040aa2b
lea eax, [ebp - 0xbc0]
push esi
push eax
push 2
push dword [0x413a30]
call fcn.0040aa2b
mov eax, dword [0x413634]
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 [0x413638]
call dword [sym.imp.USER32.dll_MessageBoxA]
push 1
pop eax
jmp 0x4069e9
push 0
mov ebx, 0x800
push dword [ebp + 8]
lea eax, [ebp - 0x9c0]
push ebx
push eax
call fcn.00406adf
add esp, 0x10
cmp byte [ebp - 0x9bc], 0x20
jne 0x40402a
mov dword [0x4136b0], 1
movzx eax, word [0x413b34]
mov ecx, dword [0x413644]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpA]
push str.
and dword [ecx + eax*4], 0
inc word [0x413b34]
movzx eax, word [0x413b34]
mov ecx, dword [0x413644]
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.00406adf
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 [0x413a48]
call esi
push dword [0x413a48]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
call edi
mov ebx, eax
cmp ebx, 0xd
jle 0x404101
mov eax, dword [0x413a48]
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 [0x413a48]
and byte [eax + ebx - 0xd], 0
push dword [0x413a48]
call edi
mov edi, eax
cmp edi, 8
jle 0x404133
mov eax, dword [0x413a48]
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 [0x413a48]
and byte [eax + edi - 8], 0
cmp dword [0x413a64], 0
jne 0x40418a
lea eax, [ebp - 0x11c4]
push 0x100
push eax
push 0x19
push dword [0x413a30]
call fcn.0040aa2b
push dword [0x413a48]
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 [0x413638]
call dword [sym.imp.USER32.dll_SetWindowTextA]
push 0
lea eax, [ebp - 0x9c0]
push dword [ebp + 8]
push 0x800
push eax
call fcn.00406adf
add esp, 0x10
cmp byte [ebp - 0x9c0], 0
je 0x4069dc
lea eax, [ebp - 0x9c0]
push str.Non_System_File:
push eax
mov dword [ebp - 0xc], 1
call fcn.0040f5f0
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.00406adf
add esp, 0x10
jmp 0x404266
mov esi, 0x100
lea eax, [ebp - 0x9c0]
push esi
push eax
push 4
push dword [0x413a30]
call fcn.0040aa2b
lea eax, [ebp - 0xbc0]
push esi
push eax
push 2
push dword [0x413a30]
call fcn.0040aa2b
mov eax, dword [0x413634]
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 [0x413638]
call dword [sym.imp.USER32.dll_MessageBoxA]
push 1
pop esi
jmp 0x4069de
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.0040f5f0
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.00406adf
add esp, 0x10
jmp 0x40429d
mov dword [ebp - 4], ebx
push 0xb
lea eax, [ebp - 0x9c0]
push str.File_Copy:
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
je 0x405e39
push 0xc
lea eax, [ebp - 0x9c0]
push str.Shell_Link:
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
je 0x405e39
push 0x10
lea eax, [ebp - 0x9c0]
push str.File_Overwrite:
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
je 0x405e39
push 0xb
lea eax, [ebp - 0x9c0]
push str.RegDB_Key:
push eax
call fcn.0040f540
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.00406adf
push 0xb
lea eax, [ebp - 0x9c0]
push str.RegDB_Val:
push eax
call fcn.0040f540
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.00406adf
push 0xb
lea eax, [ebp - 0x9c0]
push str.RegDB_Val:
push eax
call fcn.0040f540
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.0040f540
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.00406adf
add esp, 0x10
jmp 0x4043ea
mov edi, 0x800
push 0xc
lea eax, [ebp - 0x9c0]
push str.RegDB_Type:
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
jne 0x404428
lea eax, [ebp - 0x9b4]
push eax
call fcn.0040c18e
push 0
mov dword [ebp - 4], eax
push dword [ebp + 8]
lea eax, [ebp - 0x9c0]
push edi
push eax
call fcn.00406adf
add esp, 0x14
push 0xc
lea eax, [ebp - 0x9c0]
push str.RegDB_Root:
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
jne 0x404477
lea eax, [ebp - 0x9b4]
push eax
call fcn.0040c18e
push 0
mov ebx, eax
push dword [ebp + 8]
lea eax, [ebp - 0x9c0]
push edi
push eax
call fcn.00406adf
add esp, 0x14
cmp ebx, 1
jne 0x404477
cmp dword [0x413724], 0
jne 0x4041a3
push ebx
lea eax, [ebp - 0x34]
push 0x412434
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
push 0x10
call fcn.0040b488
mov ecx, dword [0x4136e4]
mov edx, dword [0x413658]
add esp, 0x10
mov dword [ecx + edx*4], eax
mov eax, dword [0x4136e4]
mov ecx, dword [0x413658]
mov edi, dword [eax + ecx*4]
inc dword [0x413658]
lea eax, [ebp - 0x28d8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040b488
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.0040f540
add esp, 0xc
test eax, eax
jne 0x4046f9
lea eax, [ebp - 0x34]
mov dword [edi], 1
mov ecx, dword [0x413a9c]
push eax
lea eax, [ebp - 0x19cc]
push eax
lea eax, [ebp - 0x10c4]
push eax
mov eax, dword [0x413a24]
push ecx
push 0x1224
push dword [eax]
lea eax, [eax + ecx*4]
push eax
call fcn.0040b5aa
add esp, 0x1c
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x404680
mov eax, dword [0x413a24]
mov ecx, dword [0x413a9c]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x121c], 0
mov eax, dword [0x413a24]
mov ecx, dword [0x413a9c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 4]
mov dword [eax + 0x1218], ecx
mov eax, dword [0x413a24]
mov ecx, dword [0x413a9c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x1214], ebx
mov eax, dword [0x413a24]
mov ecx, dword [0x413a9c]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b34]
mov word [eax + 0x1220], cx
mov ecx, dword [0x413a9c]
lea eax, [ebp - 0x10c4]
push eax
mov eax, dword [0x413a24]
mov eax, dword [eax + ecx*4]
add eax, 8
push eax
call esi
mov ecx, dword [0x413a9c]
lea eax, [ebp - 0x19cc]
push eax
mov eax, dword [0x413a24]
mov eax, dword [eax + ecx*4]
add eax, 0x108
push eax
call esi
mov ecx, dword [0x413a9c]
lea eax, [ebp - 0x34]
push eax
mov eax, dword [0x413a24]
mov eax, dword [eax + ecx*4]
add eax, 0x208
push eax
call esi
mov eax, dword [0x413a9c]
mov ecx, dword [0x413a24]
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.00406adf
push 0xb
lea eax, [ebp - 0x9c0]
push str.RegDB_Old:
push eax
call fcn.0040f540
add esp, 0x1c
test eax, eax
je 0x4045ff
and byte [ebx], 0
mov eax, dword [0x413a24]
mov ecx, dword [0x413a9c]
mov eax, dword [eax + ecx*4]
lea ecx, [eax + 0x214]
add eax, 0xa14
push ecx
push eax
call esi
mov eax, dword [0x413a9c]
mov ecx, dword [0x413a24]
mov eax, dword [ecx + eax*4]
mov dword [edi + 8], eax
inc dword [0x413a9c]
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.00406adf
push 0xb
lea eax, [ebp - 0x9c0]
push str.RegDB_Old:
push eax
call fcn.0040f540
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 [0x413b34]
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 [0x413b3c]
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x19cc]
push eax
lea eax, [ebp - 0x10c4]
push eax
mov eax, dword [0x41366c]
push ecx
push 0x224
push dword [eax]
lea eax, [eax + ecx*4]
push eax
call fcn.0040b5aa
add esp, 0x1c
test eax, eax
jne 0x4047eb
mov eax, dword [0x41366c]
mov ecx, dword [0x413b3c]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x21c], 0
mov eax, dword [0x41366c]
mov ecx, dword [0x413b3c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x218], ebx
mov eax, dword [0x41366c]
mov ecx, dword [0x413b3c]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b34]
mov word [eax + 0x220], cx
mov ecx, dword [0x413b3c]
lea eax, [ebp - 0x10c4]
push eax
mov eax, dword [0x41366c]
mov eax, dword [eax + ecx*4]
add eax, 8
push eax
call esi
mov ecx, dword [0x413b3c]
lea eax, [ebp - 0x19cc]
push eax
mov eax, dword [0x41366c]
mov eax, dword [eax + ecx*4]
add eax, 0x10c
push eax
call esi
mov ecx, dword [0x413b3c]
lea eax, [ebp - 0x34]
push eax
mov eax, dword [0x41366c]
mov eax, dword [eax + ecx*4]
add eax, 0x20c
push eax
call esi
mov eax, dword [0x413b3c]
mov ecx, dword [0x41366c]
mov eax, dword [ecx + eax*4]
mov dword [edi + 8], eax
inc dword [0x413b3c]
jmp 0x4041a3
mov cx, word [0x413b34]
mov word [eax + 0x220], cx
jmp 0x4046f1
push 0xb
lea eax, [ebp - 0x9c0]
push str.File_Edit:
push eax
call fcn.0040f540
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.00406adf
and byte [ebp - 0x11c4], 0
push 0xd
lea eax, [ebp - 0x9c0]
push str.Backup_Copy:
push eax
call fcn.0040f540
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.0040f540
add esp, 0xc
test eax, eax
jne 0x404898
cmp dword [ebp - 0x1c], edi
je 0x406963
push edi
lea eax, [ebp - 0xec4]
push 0x412404
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
jne 0x4048ba
cmp dword [ebp - 0x18], edi
je 0x406963
cmp byte [ebp - 0x11c4], 0
je 0x406963
lea eax, [ebp - 0xec4]
push 0
push eax
call fcn.0040a7c1
pop ecx
test eax, eax
pop ecx
jne 0x406963
lea eax, [ebp - 0xec4]
push eax
lea eax, [ebp - 0xbc0]
push eax
call esi
xor ebx, ebx
xor edi, edi
cmp dword [0x413a50], ebx
jle 0x404926
mov eax, dword [0x413640]
push dword [eax + edi*4]
lea eax, [ebp - 0xec4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
mov eax, dword [0x413a50]
je 0x40491e
inc edi
cmp edi, eax
jl 0x4048fb
cmp edi, eax
jl 0x4049eb
push 0x20a
call fcn.0040b488
mov edx, dword [0x413640]
pop ecx
mov ecx, dword [0x413a50]
mov dword [edx + ecx*4], eax
cmp dword [0x4136b0], ebx
je 0x404961
mov ecx, dword [0x413640]
lea eax, [ebp - 0xec4]
push eax
mov eax, dword [0x413a50]
push dword [ecx + eax*4]
call esi
jmp 0x40497c
mov eax, dword [0x413a50]
mov ecx, dword [0x413640]
push dword [ecx + eax*4]
lea eax, [ebp - 0xec4]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
cmp dword [0x4136b0], ebx
je 0x4049a3
mov ecx, dword [0x413640]
lea eax, [ebp - 0x11c4]
push eax
mov eax, dword [0x413a50]
mov eax, dword [ecx + eax*4]
add eax, 0x104
push eax
call esi
jmp 0x4049c4
mov eax, dword [0x413a50]
mov ecx, dword [0x413640]
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 [0x413a50]
mov ecx, dword [0x413640]
mov eax, dword [ecx + eax*4]
mov cx, word [0x413b34]
mov word [eax + 0x208], cx
inc dword [0x413a50]
jmp 0x406963
mov ecx, dword [0x413640]
mov dx, word [0x413b34]
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 [0x413640]
mov eax, dword [eax + ecx]
add eax, 0x104
jmp 0x4068b4
push 0x10
lea eax, [ebp - 0x9c0]
push str.Create_Service:
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
jne 0x404af7
xor edi, edi
cmp dword [0x413a20], ebx
jle 0x404a70
mov eax, dword [0x413b38]
push dword [eax + edi*4]
lea eax, [ebp - 0x9b0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
mov eax, dword [0x413a20]
je 0x404a6c
inc edi
cmp edi, eax
jl 0x404a49
cmp edi, eax
jl 0x404adc
push 0x10c
call fcn.0040b488
mov edx, dword [0x413a20]
pop ecx
mov ecx, dword [0x413b38]
mov dword [ecx + edx*4], eax
mov eax, dword [0x413b38]
mov ecx, dword [0x413a20]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x104], ebx
mov eax, dword [0x413b38]
mov ecx, dword [0x413a20]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b34]
mov word [eax + 0x108], cx
mov ecx, dword [0x413b38]
lea eax, [ebp - 0x9b0]
push eax
mov eax, dword [0x413a20]
push dword [ecx + eax*4]
call esi
inc dword [0x413a20]
jmp 0x40418a
mov eax, dword [0x413b38]
mov cx, word [0x413b34]
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.0040f540
add esp, 0xc
test eax, eax
jne 0x404ba6
xor edi, edi
cmp dword [0x413a54], ebx
jle 0x404b5b
lea eax, [ebp - 0x9b4]
push eax
mov eax, dword [0x413688]
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 [0x413688]
mov cx, word [0x413b34]
mov eax, dword [eax + edi*4]
mov word [eax + 0x26e], cx
inc edi
cmp edi, dword [0x413a54]
jl 0x404b1f
xor edi, edi
cmp dword [0x413708], ebx
jle 0x40418a
lea eax, [ebp - 0x9b4]
push eax
mov eax, dword [0x413aac]
push dword [eax + edi*4]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x404b98
mov eax, dword [0x413aac]
mov cx, word [0x413b34]
mov eax, dword [eax + edi*4]
mov word [eax + 0x266], cx
inc edi
cmp edi, dword [0x413708]
jl 0x404b69
jmp 0x40418a
push 0xf
lea eax, [ebp - 0x9c0]
push str.Self_Register:
push eax
call fcn.0040f540
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.0040a622
pop ecx
xor edi, edi
cmp dword [0x413a54], ebx
pop ecx
jle 0x404c4a
mov eax, dword [0x413688]
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.0040a622
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 [0x413688]
mov cx, word [0x413b34]
mov eax, dword [eax + edi*4]
mov word [eax + 0x26c], cx
inc edi
cmp edi, dword [0x413a54]
jl 0x404bee
xor edi, edi
cmp dword [0x413708], ebx
jle 0x40418a
mov eax, dword [0x413aac]
push dword [eax + edi*4]
lea eax, [ebp - 0x10c4]
push eax
call esi
lea eax, [ebp - 0x10c4]
push 1
push eax
call fcn.0040a622
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 [0x413aac]
mov cx, word [0x413b34]
mov eax, dword [eax + edi*4]
mov word [eax + 0x264], cx
inc edi
cmp edi, dword [0x413708]
jl 0x404c58
jmp 0x40418a
push 9
lea eax, [ebp - 0x9c0]
push str.INI_New:
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
jne 0x404e8a
push ebx
lea eax, [ebp - 0x9c0]
push dword [ebp + 8]
push edi
push eax
call fcn.00406adf
push 0xa
lea eax, [ebp - 0x9c0]
push str.INI_File:
push eax
call fcn.0040f540
add esp, 0x1c
test eax, eax
jne 0x4041a3
push 2
lea eax, [ebp - 0x9b6]
pop edi
push edi
push 0x412408
push eax
call fcn.0040f540
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.0040f540
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.0040a7c1
pop ecx
test eax, eax
pop ecx
jne 0x404e3b
xor edi, edi
cmp dword [0x413714], ebx
jle 0x404d97
mov eax, dword [0x413648]
push dword [eax + edi*4]
lea eax, [ebp - 0x9b6]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
mov eax, dword [0x413714]
je 0x404d8f
inc edi
cmp edi, eax
jl 0x404d6c
cmp edi, eax
jl 0x404e25
push 0x10c
call fcn.0040b488
mov edx, dword [0x413714]
pop ecx
mov ecx, dword [0x413648]
mov dword [ecx + edx*4], eax
mov eax, dword [0x413714]
mov ecx, dword [0x413648]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x104], ebx
cmp dword [0x4136b0], ebx
je 0x404de6
mov ecx, dword [0x413648]
lea eax, [ebp - 0x9b6]
push eax
mov eax, dword [0x413714]
push dword [ecx + eax*4]
call esi
jmp 0x404e01
mov eax, dword [0x413714]
mov ecx, dword [0x413648]
push dword [ecx + eax*4]
lea eax, [ebp - 0x9b6]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
mov eax, dword [0x413714]
mov ecx, dword [0x413648]
mov eax, dword [ecx + eax*4]
mov cx, word [0x413b34]
mov word [eax + 0x108], cx
inc dword [0x413714]
jmp 0x404e3b
mov eax, dword [0x413648]
mov cx, word [0x413b34]
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.00406adf
push 4
lea eax, [ebp - 0x9c0]
push str.INI
push eax
call fcn.0040f540
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.0040f540
add esp, 0xc
test eax, eax
jne 0x405138
push 2
lea eax, [ebp - 0x9b6]
push 0x412408
push eax
call fcn.0040f540
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.0040f540
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 [0x4136b0], 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.00406adf
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.0040f540
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.00406adf
push 0xa
lea eax, [ebp - 0x9c0]
push str.INI_Item:
push eax
call fcn.0040f540
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.00406adf
push 9
lea eax, [ebp - 0x9c0]
push str.INI_Val:
push eax
call fcn.0040f540
add esp, 0x1c
test eax, eax
jne 0x4041a3
push eax
lea eax, [ebp - 0x9c0]
push dword [ebp + 8]
push 0x800
push eax
call fcn.00406adf
push 9
lea eax, [ebp - 0x9c0]
push str.INI_Old:
push eax
call fcn.0040f540
add esp, 0x1c
test eax, eax
jne 0x405027
mov dword [ebp - 0xc], 1
lea edi, [ebp - 0x9b7]
jmp 0x40502c
mov edi, 0x413470
mov ecx, dword [0x4136c0]
lea eax, [ebp - 0x10c4]
push eax
lea eax, [ebp - 0xbc0]
push eax
lea eax, [ebp - 0x19cc]
push eax
mov eax, dword [0x413748]
push ecx
push 0x714
push dword [eax]
lea eax, [eax + ecx*4]
push eax
call fcn.0040b5aa
add esp, 0x1c
test eax, eax
jne 0x40512d
mov eax, dword [0x413748]
mov ecx, dword [0x4136c0]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x70c], 0
mov eax, dword [0x413748]
mov ecx, dword [0x4136c0]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b34]
mov word [eax + 0x710], cx
mov ecx, dword [0x4136c0]
lea eax, [ebp - 0x19cc]
push eax
mov eax, dword [0x413748]
mov eax, dword [eax + ecx*4]
add eax, 8
push eax
call esi
mov ecx, dword [0x4136c0]
lea eax, [ebp - 0xbc0]
push eax
mov eax, dword [0x413748]
mov eax, dword [eax + ecx*4]
add eax, 0x10c
push eax
call esi
mov ecx, dword [0x4136c0]
lea eax, [ebp - 0x10c4]
push eax
mov eax, dword [0x413748]
mov eax, dword [eax + ecx*4]
add eax, 0x20c
push eax
call esi
mov eax, dword [0x413748]
mov ecx, dword [0x4136c0]
push edi
mov eax, dword [eax + ecx*4]
add eax, 0x30c
push eax
call esi
mov eax, dword [0x4136c0]
mov ecx, dword [0x413748]
mov eax, dword [ecx + eax*4]
lea ecx, [eax + 0x30c]
add eax, 0x50c
push ecx
push eax
call esi
inc dword [0x4136c0]
jmp 0x406963
push edi
add eax, 0x50c
jmp 0x4068b4
push 0xe
lea eax, [ebp - 0x9c0]
push str.Execute_Path:
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
je 0x405cf3
push 0x11
lea eax, [ebp - 0x9c0]
push str.Execute_Program:
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
je 0x405cf3
push 0xc
lea eax, [ebp - 0x9c0]
push str.Icon_Group:
push eax
call fcn.0040f540
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.00406adf
push 0xb
lea eax, [ebp - 0x9c0]
push str.Icon_Name:
push eax
call fcn.0040f540
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.00406adf
push 0xa
lea eax, [ebp - 0x9c0]
push str.Icon_Cmd:
push eax
call fcn.0040f540
add esp, 0x1c
test eax, eax
jne 0x4041a3
xor edi, edi
cmp dword [0x413668], edi
jle 0x40526a
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
lea eax, [ebp - 0xbc0]
push eax
mov eax, dword [0x4136d4]
push dword [eax + edi*4]
call ebx
test eax, eax
jne 0x405255
lea eax, [ebp - 0x10c4]
push eax
mov eax, dword [0x4136d4]
mov eax, dword [eax + edi*4]
add eax, 0x100
push eax
call ebx
test eax, eax
je 0x40525e
inc edi
cmp edi, dword [0x413668]
jl 0x405225
cmp edi, dword [0x413668]
jl 0x405311
push 0x308
call fcn.0040b488
mov edx, dword [0x413668]
pop ecx
mov ecx, dword [0x4136d4]
mov dword [ecx + edx*4], eax
mov eax, dword [0x4136d4]
mov ecx, dword [0x413668]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x300], 0
mov eax, dword [0x4136d4]
mov ecx, dword [0x413668]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b34]
mov word [eax + 0x304], cx
mov ecx, dword [0x413668]
lea eax, [ebp - 0x10c4]
push eax
mov eax, dword [0x4136d4]
mov eax, dword [eax + ecx*4]
add eax, 0x100
push eax
call esi
mov ecx, dword [0x413668]
lea eax, [ebp - 0xbc0]
push eax
mov eax, dword [0x4136d4]
push dword [eax + ecx*4]
call esi
mov ecx, dword [0x4136d4]
lea eax, [ebp - 0x9b6]
push eax
mov eax, dword [0x413668]
mov eax, dword [ecx + eax*4]
add eax, 0x200
push eax
call esi
inc dword [0x413668]
jmp 0x40418a
lea eax, [ebp - 0x9b6]
push eax
mov eax, dword [0x4136d4]
mov eax, dword [eax + edi*4]
add eax, 0x200
push eax
jmp 0x405a8b
push 0xc
lea eax, [ebp - 0x9c0]
push str.SubSystem:_B
push eax
call fcn.0040f540
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.0040b488
pop ecx
mov dword [0x41373c], eax
lea ecx, [ebp - 0x9b5]
push ecx
push eax
call esi
mov dword [0x413670], ebx
jmp 0x40418a
push 0xa
lea eax, [ebp - 0x9c0]
push str.Made_Dir:
push eax
call fcn.0040f540
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.0040a622
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.0040f540
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 [0x4130bc], 1
jle 0x40543e
movsx eax, byte [ebp - 0x9b6]
push 0x103
push eax
call fcn.0040c08e
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 [0x413b28], edi
jle 0x4054cc
mov eax, dword [0x41369c]
push dword [eax + edi*4]
call ebx
cmp dword [ebp - 4], eax
jge 0x405494
mov eax, dword [ebp - 4]
jmp 0x40549e
mov eax, dword [0x41369c]
push dword [eax + edi*4]
call ebx
push eax
mov eax, dword [0x41369c]
push dword [eax + edi*4]
lea eax, [ebp - 0x9b6]
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
mov eax, dword [0x413b28]
je 0x4054c4
inc edi
cmp edi, eax
jl 0x405480
cmp edi, eax
jl 0x405571
push 0x10c
call fcn.0040b488
mov edx, dword [0x413b28]
pop ecx
mov ecx, dword [0x41369c]
mov dword [ecx + edx*4], eax
mov eax, dword [0x41369c]
mov ecx, dword [0x413b28]
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov dword [ecx + 0x104], eax
mov ecx, dword [0x41369c]
mov edx, dword [0x413b28]
mov ecx, dword [ecx + edx*4]
mov word [ecx + 0x108], ax
mov ecx, dword [0x41369c]
mov edx, dword [0x413b28]
mov ecx, dword [ecx + edx*4]
mov dx, word [0x413b34]
mov word [ecx + 0x10a], dx
cmp dword [0x4136b0], eax
je 0x405551
mov ecx, dword [0x413b28]
lea eax, [ebp - 0x9b6]
push eax
mov eax, dword [0x41369c]
push dword [eax + ecx*4]
jmp 0x405730
mov eax, dword [0x41369c]
mov ecx, dword [0x413b28]
push dword [eax + ecx*4]
lea eax, [ebp - 0x9b6]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
jmp 0x405732
mov eax, dword [0x41369c]
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 [0x41369c]
push dword [edi + eax]
call ebx
mov ecx, dword [0x41369c]
mov ecx, dword [edi + ecx]
and byte [ecx + eax], 0
mov eax, dword [0x41369c]
mov eax, dword [edi + eax]
jmp 0x405762
push 0xb
lea eax, [ebp - 0x9c0]
push str.File_Tree:
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
jne 0x405775
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 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 0x405628
cmp byte [ebp - 0x9b4], 0x5c
je 0x40567f
cmp dword [0x4130bc], 1
jle 0x405647
movsx eax, byte [ebp - 0x9b5]
push 0x103
push eax
call fcn.0040c08e
pop ecx
pop ecx
jmp 0x40565d
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 [0x413b28], edi
jle 0x4056b4
mov eax, dword [0x41369c]
push dword [eax + edi*4]
lea eax, [ebp - 0x9b5]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
mov eax, dword [0x413b28]
je 0x4056ac
inc edi
cmp edi, eax
jl 0x405689
cmp edi, eax
jl 0x40573d
push 0x10c
call fcn.0040b488
mov edx, dword [0x413b28]
pop ecx
mov ecx, dword [0x41369c]
mov dword [ecx + edx*4], eax
mov eax, dword [0x41369c]
mov ecx, dword [0x413b28]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x104], 0
mov eax, dword [0x41369c]
mov ecx, dword [0x413b28]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b34]
mov word [eax + 0x108], cx
mov eax, dword [0x41369c]
mov ecx, dword [0x413b28]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b34]
mov word [eax + 0x10a], cx
mov ecx, dword [0x41369c]
lea eax, [ebp - 0x9b5]
push eax
mov eax, dword [0x413b28]
push dword [ecx + eax*4]
call esi
inc dword [0x413b28]
jmp 0x40418a
mov ecx, dword [0x41369c]
mov dx, word [0x413b34]
mov eax, edi
shl eax, 2
mov ecx, dword [eax + ecx]
mov word [ecx + 0x108], dx
mov ecx, dword [0x41369c]
mov eax, dword [eax + ecx]
mov cx, word [0x413b34]
mov word [eax + 0x10a], cx
jmp 0x40418a
push 0xc
lea eax, [ebp - 0x9c0]
push str.RegDB_Tree:
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
jne 0x4058d8
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.00406adf
push 0xc
lea eax, [ebp - 0x9c0]
push str.RegDB_Root:
push eax
mov dword [ebp - 4], ebx
call fcn.0040f540
add esp, 0x1c
test eax, eax
jne 0x4057f4
lea eax, [ebp - 0x9b4]
push eax
call fcn.0040c18e
push ebx
mov dword [ebp - 4], eax
push dword [ebp + 8]
lea eax, [ebp - 0x9c0]
push edi
push eax
call fcn.00406adf
add esp, 0x14
xor edi, edi
cmp dword [0x413aa4], ebx
jle 0x40583f
mov eax, dword [0x413760]
push dword [eax + edi*4]
lea eax, [ebp - 0x10c4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
mov eax, dword [0x413760]
jne 0x40582a
mov ecx, dword [eax + edi*4]
mov edx, dword [ebp - 4]
cmp edx, dword [ecx + 0x100]
je 0x405833
inc edi
cmp edi, dword [0x413aa4]
jl 0x405803
cmp edi, dword [0x413aa4]
jl 0x4058c2
push 0x10c
call fcn.0040b488
mov edx, dword [0x413aa4]
pop ecx
mov ecx, dword [0x413760]
mov dword [ecx + edx*4], eax
mov eax, dword [0x413760]
mov ecx, dword [0x413aa4]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x104], ebx
mov eax, dword [0x413760]
mov ecx, dword [0x413aa4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 4]
mov dword [eax + 0x100], ecx
mov eax, dword [0x413760]
mov ecx, dword [0x413aa4]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b34]
mov word [eax + 0x108], cx
mov ecx, dword [0x413760]
lea eax, [ebp - 0x10c4]
push eax
mov eax, dword [0x413aa4]
push dword [ecx + eax*4]
call esi
inc dword [0x413aa4]
jmp 0x4041a3
mov eax, dword [eax + edi*4]
mov cx, word [0x413b34]
mov word [eax + 0x108], cx
jmp 0x4041a3
push 4
lea eax, [ebp - 0x9c0]
push str.
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
jne 0x405943
lea eax, [ebp - 0x9c0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [0x41372c]
mov edx, dword [0x41370c]
add edx, ecx
mov ecx, dword [0x413644]
sub edx, eax
dec edx
inc word [0x413b34]
movzx eax, word [0x413b34]
mov dword [0x413734], edx
mov dword [ecx + eax*4], ebx
xor eax, eax
cmp byte [ebp - 0x9bc], 0x20
sete al
mov dword [0x4136b0], eax
jmp 0x40418a
push 8
lea eax, [ebp - 0x9c0]
push str.Source:
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
jne 0x4059c2
lea eax, [ebp - 0x9b8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040b488
mov edx, dword [0x413644]
pop ecx
movzx ecx, word [0x413b34]
mov dword [edx + ecx*4], eax
mov ecx, dword [0x413644]
lea eax, [ebp - 0x9b8]
push eax
movzx eax, word [0x413b34]
push dword [ecx + eax*4]
call esi
lea eax, [ebp - 0x9c0]
push 0x7c
push eax
call fcn.0040bc63
pop ecx
test eax, eax
pop ecx
je 0x40418a
mov dword [0x4136cc], 1
jmp 0x40418a
push 0xf
lea eax, [ebp - 0x9c0]
push str.Uninstall_MIF:
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
jne 0x4059ed
lea eax, [ebp - 0x9b1]
push eax
push 0x413780
jmp 0x405a8b
push 0xe
lea eax, [ebp - 0x9c0]
push str.Manufacturer:
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
jne 0x405a15
lea eax, [ebp - 0x9b2]
push eax
push 0x413800
jmp 0x405a8b
push 9
lea eax, [ebp - 0x9c0]
push str.Product:
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
jne 0x405a3d
lea eax, [ebp - 0x9b7]
push eax
push 0x413880
jmp 0x405a8b
push 0x10
lea eax, [ebp - 0x9c0]
push str.Version_Number:
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
jne 0x405a65
lea eax, [ebp - 0x9b0]
push eax
push 0x413900
jmp 0x405a8b
push 0xf
lea eax, [ebp - 0x9c0]
push str.Serial_Number:
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
jne 0x405a92
lea eax, [ebp - 0x9b1]
push eax
push 0x413980
call esi
jmp 0x40418a
lea eax, [ebp - 0x9c0]
push str.User_Rights:_Admin
push eax
call fcn.0040f5f0
pop ecx
test eax, eax
pop ecx
jne 0x405ae8
cmp dword [ebp - 0x24], ebx
jne 0x40418a
cmp dword [0x413650], 1
jne 0x40418a
push 1
xor edi, edi
pop ebx
push 0xe0000000
push edi
push edi
mov dword [ebp - 0x24], ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
cmp eax, edi
je 0x406972
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.0040f540
add esp, 0xc
test eax, eax
jne 0x405c83
mov edi, 0x100
push edi
call fcn.0040b488
pop ecx
mov dword [0x413724], eax
lea ecx, [ebp - 0x9b3]
push ecx
push eax
call esi
cmp dword [0x41368c], 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 0x405be0
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 0x405bd7
cmp byte [ebp - 0xbc0], al
je 0x405bd7
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 0x405bd3
cmp byte [eax], 0x5c
je 0x405bb9
dec eax
lea ecx, [ebp - 0xdc4]
cmp eax, ecx
ja 0x405ba9
lea ecx, [ebp - 0xdc4]
cmp eax, ecx
jbe 0x405bd3
dec eax
lea ecx, [ebp - 0xdc4]
cmp eax, ecx
jbe 0x405bd3
cmp byte [eax], 0x5c
jne 0x405bc3
and byte [eax + 1], 0
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [0x413650], 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 0x405c75
cmp byte [ebp - 0xbc0], al
je 0x405c75
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 0x405c71
cmp byte [eax], 0x5c
je 0x405c71
dec eax
jmp 0x405c5f
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.0040f540
add esp, 0xc
test eax, eax
jne 0x40418a
push 2
lea eax, [ebp - 0x9ab]
push 0x4121f4
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
jne 0x405cca
mov dword [0x413738], 1
jmp 0x40418a
push 2
lea eax, [ebp - 0x9ab]
push 0x4121f0
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
jne 0x40418a
and dword [0x413738], 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 [0x413a40], ebx
mov dword [ebp - 4], eax
jle 0x405d4c
mov eax, dword [0x4136e8]
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 [0x413a40]
je 0x405d41
inc dword [ebp - 8]
cmp dword [ebp - 8], eax
jl 0x405d14
mov ecx, dword [ebp - 8]
cmp ecx, eax
jl 0x405e1e
push 0x20c
call fcn.0040b488
mov edx, dword [0x413a40]
pop ecx
mov ecx, dword [0x4136e8]
mov dword [ecx + edx*4], eax
mov eax, dword [0x4136e8]
mov ecx, dword [0x413a40]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x204], ebx
mov eax, dword [0x4136e8]
mov ecx, dword [0x413a40]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b34]
mov word [eax + 0x208], cx
mov eax, dword [ebp - 4]
mov ecx, dword [0x413a40]
lea eax, [ebp + eax - 0x9c0]
push eax
mov eax, dword [0x4136e8]
push dword [eax + ecx*4]
call esi
mov eax, dword [0x413a40]
mov ecx, dword [0x4136e8]
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.00406adf
push 0xe
lea eax, [ebp - 0x9c0]
push str.Execute_Name:
push eax
call fcn.0040f540
add esp, 0x1c
test eax, eax
jne 0x405e10
mov ecx, dword [0x4136e8]
lea eax, [ebp - 0x9b2]
push eax
mov eax, dword [0x413a40]
mov eax, dword [ecx + eax*4]
add eax, 0x104
push eax
call esi
jmp 0x405e13
mov dword [ebp - 0xc], ebx
inc dword [0x413a40]
jmp 0x406963
mov eax, dword [0x4136e8]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b34]
mov word [eax + 0x208], cx
jmp 0x406963
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.0040bc63
mov ebx, eax
pop ecx
test ebx, ebx
pop ecx
je 0x405e7d
lea eax, [ebx + 1]
push eax
lea eax, [ebp - 0xc0]
push eax
call esi
cmp byte [ebx - 1], 0x20
jne 0x405e7a
and byte [ebx - 1], 0
jmp 0x405e7d
and byte [ebx], 0
cmp byte [ebp - 0x9c0], 0x53
jne 0x405f05
lea eax, [ebp - 0x9b4]
push eax
lea eax, [ebp - 0x1c0]
push eax
call esi
cmp dword [0x413724], 0
je 0x405f95
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.0040f540
add esp, 0xc
test eax, eax
jne 0x405f95
lea eax, [ebp - 0x12c8]
push eax
call ebx
push eax
lea eax, [ebp - 0x12c8]
push eax
lea eax, [ebp - 0x1c0]
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
je 0x405f95
and byte [ebp - 0x1c0], 0
jmp 0x405f95
cmp byte [ebp - 0x9bb], 0x43
jne 0x405f20
lea eax, [ebp - 0x9b5]
push eax
lea eax, [ebp - 0x1c0]
push eax
call esi
jmp 0x405f95
lea eax, [ebp - 0x9b0]
push eax
lea eax, [ebp - 0x1c0]
push eax
call esi
cmp dword [0x41368c], 0
mov dword [ebp - 8], 1
je 0x405f95
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 0x405f95
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 0x405f8c
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.00406adf
and byte [ebp - 0xcc0], bl
push 0xb
lea eax, [ebp - 0x9c0]
push str.Link_Info:
push eax
call fcn.0040f540
add esp, 0x1c
test eax, eax
jne 0x405fec
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.00406adf
add esp, 0x10
push 0xd
lea eax, [ebp - 0x9c0]
push str.Backup_Copy:
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
jne 0x406022
lea eax, [ebp - 0x9b3]
push eax
lea eax, [ebp - 0xcc0]
push eax
call esi
mov dword [0x413a38], 1
jmp 0x406025
mov dword [ebp - 0xc], ebx
push 2
lea eax, [ebp - 0x1c0]
pop edi
push edi
push 0x412408
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
jne 0x40604a
cmp dword [ebp - 0x1c], edi
je 0x4067bd
push edi
lea eax, [ebp - 0x1c0]
push 0x412404
push eax
call fcn.0040f540
add esp, 0xc
test eax, eax
jne 0x40606c
cmp dword [ebp - 0x18], edi
je 0x4067bd
cmp dword [ebp - 8], ebx
je 0x40607e
cmp byte [ebp - 0xcc0], 0
je 0x4067bd
cmp byte [ebp - 0x1c0], 0
je 0x4067bd
lea eax, [ebp - 0x1c0]
push ebx
push eax
call fcn.0040a7c1
pop ecx
test eax, eax
pop ecx
jne 0x4066f8
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 0x4060db
cmp byte [eax], 0x5c
je 0x4060e0
and byte [eax], 0
dec eax
jmp 0x4060c6
cmp byte [eax], 0x5c
jne 0x4060e3
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 0x4063ff
lea eax, [ebp - 0x17cc]
push eax
lea eax, [ebp - 0xbc0]
push eax
call ebx
test eax, eax
je 0x4063ff
push dword [0x4136d8]
lea eax, [ebp - 0xbc0]
push eax
call ebx
test eax, eax
je 0x4063ff
lea eax, [ebp - 0x1ad0]
push eax
lea eax, [ebp - 0xbc0]
push eax
call ebx
test eax, eax
je 0x4063ff
mov ecx, dword [0x413a54]
xor ebx, ebx
push ebx
lea eax, [ebp - 0x1c0]
push ebx
push eax
mov eax, dword [0x413688]
push ecx
push 0x27c
push dword [eax]
lea eax, [eax + ecx*4]
push eax
call fcn.0040b5aa
mov edi, eax
add esp, 0x1c
cmp edi, ebx
jne 0x4063ab
mov eax, dword [0x413688]
mov ecx, dword [0x413a54]
mov eax, dword [eax + ecx*4]
mov word [eax + 0x274], bx
mov eax, dword [0x413a54]
mov ecx, dword [0x413688]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x264], ebx
cmp dword [0x4136b0], ebx
je 0x4061ca
mov ecx, dword [0x413688]
lea eax, [ebp - 0x1c0]
push eax
mov eax, dword [0x413a54]
mov eax, dword [ecx + eax*4]
add eax, 8
push eax
call esi
jmp 0x4061e9
mov eax, dword [0x413a54]
mov ecx, dword [0x413688]
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 [0x4136b0], ebx
je 0x406210
mov ecx, dword [0x413688]
lea eax, [ebp - 0xcc0]
push eax
mov eax, dword [0x413a54]
mov eax, dword [ecx + eax*4]
add eax, 0x10c
push eax
call esi
jmp 0x406231
mov eax, dword [0x413a54]
mov ecx, dword [0x413688]
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 [0x413688]
mov ecx, dword [0x413a54]
cmp dword [ebp - 4], ebx
mov eax, dword [eax + ecx*4]
mov word [eax + 0x26e], bx
mov eax, dword [0x413688]
mov ecx, dword [0x413a54]
mov eax, dword [eax + ecx*4]
mov word [eax + 0x26c], bx
mov eax, dword [0x413688]
mov ecx, dword [0x413a54]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b34]
mov word [eax + 0x270], cx
mov eax, dword [0x413a54]
mov ecx, dword [0x413688]
mov eax, dword [ecx + eax*4]
mov cx, word [0x413b34]
mov word [eax + 0x272], cx
jne 0x4062ce
mov eax, dword [0x413688]
mov ecx, dword [0x413a54]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b34]
mov word [eax + 0x276], cx
mov eax, dword [0x413a54]
mov ecx, dword [0x413688]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x278], 1
jmp 0x4062e3
mov eax, dword [0x413a54]
mov ecx, dword [0x413688]
mov eax, dword [ecx + eax*4]
mov word [eax + 0x276], bx
cmp dword [ebp - 8], ebx
jne 0x40630b
cmp byte [ebp - 0xcc0], 0
jne 0x40630b
mov eax, dword [0x413a54]
mov ecx, dword [0x413688]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x268], 1
jmp 0x40631f
mov eax, dword [0x413a54]
mov ecx, dword [0x413688]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x268], ebx
mov ecx, dword [0x413a54]
lea eax, [ebp - 0xc0]
push eax
mov eax, dword [0x413688]
mov eax, dword [eax + ecx*4]
add eax, 0x210
push eax
call esi
mov eax, dword [0x413a54]
mov ecx, dword [0x413688]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x260], ebx
cmp byte [ebp - 0x16c8], 0
je 0x4063a0
lea eax, [ebp - 0x16c8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040b488
mov edx, dword [0x413a54]
pop ecx
mov ecx, dword [0x413688]
mov ecx, dword [ecx + edx*4]
mov dword [ecx + 0x260], eax
mov ecx, dword [0x413688]
lea eax, [ebp - 0x16c8]
push eax
mov eax, dword [0x413a54]
mov eax, dword [ecx + eax*4]
push dword [eax + 0x260]
call esi
inc dword [0x413a54]
jmp 0x406963
mov ax, word [0x413b34]
cmp dword [ebp - 4], ebx
mov word [edi + 0x270], ax
jne 0x4063d0
mov ax, word [0x413b34]
inc dword [edi + 0x278]
mov word [edi + 0x276], ax
cmp byte [ebp - 0xcc0], 0
je 0x406875
lea eax, [ebp - 0xcc0]
push eax
lea eax, [edi + 0x10c]
push eax
call esi
mov ax, word [0x413b34]
mov word [edi + 0x272], ax
jmp 0x406875
xor edi, edi
cmp dword [0x413708], edi
jle 0x406430
mov eax, dword [0x413aac]
push dword [eax + edi*4]
lea eax, [ebp - 0x1c0]
push eax
call ebx
test eax, eax
mov eax, dword [0x413708]
je 0x406428
inc edi
cmp edi, eax
jl 0x406409
cmp edi, eax
jl 0x406676
push 0x274
call fcn.0040b488
mov edx, dword [0x413708]
pop ecx
mov ecx, dword [0x413aac]
xor edi, edi
mov dword [ecx + edx*4], eax
mov eax, dword [0x413aac]
mov ecx, dword [0x413708]
mov eax, dword [eax + ecx*4]
mov word [eax + 0x26c], di
mov eax, dword [0x413708]
mov ecx, dword [0x413aac]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 0x10]
mov dword [eax + 0x25c], ecx
cmp dword [0x4136b0], edi
je 0x406499
mov ecx, dword [0x413aac]
lea eax, [ebp - 0x1c0]
push eax
mov eax, dword [0x413708]
push dword [ecx + eax*4]
call esi
jmp 0x4064b4
mov eax, dword [0x413708]
mov ecx, dword [0x413aac]
push dword [ecx + eax*4]
lea eax, [ebp - 0x1c0]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
cmp dword [0x4136b0], edi
je 0x4064db
mov ecx, dword [0x413aac]
lea eax, [ebp - 0xcc0]
push eax
mov eax, dword [0x413708]
mov eax, dword [ecx + eax*4]
add eax, 0x104
push eax
call esi
jmp 0x4064fc
mov eax, dword [0x413708]
mov ecx, dword [0x413aac]
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 [0x413aac]
mov ecx, dword [0x413708]
cmp dword [ebp - 4], edi
mov eax, dword [eax + ecx*4]
mov word [eax + 0x266], di
mov eax, dword [0x413aac]
mov ecx, dword [0x413708]
mov eax, dword [eax + ecx*4]
mov word [eax + 0x264], di
mov eax, dword [0x413aac]
mov ecx, dword [0x413708]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b34]
mov word [eax + 0x268], cx
mov eax, dword [0x413708]
mov ecx, dword [0x413aac]
mov eax, dword [ecx + eax*4]
mov cx, word [0x413b34]
mov word [eax + 0x26a], cx
jne 0x406599
mov eax, dword [0x413aac]
mov ecx, dword [0x413708]
mov eax, dword [eax + ecx*4]
mov cx, word [0x413b34]
mov word [eax + 0x26e], cx
mov eax, dword [0x413708]
mov ecx, dword [0x413aac]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x270], 1
jmp 0x4065ae
mov eax, dword [0x413708]
mov ecx, dword [0x413aac]
mov eax, dword [ecx + eax*4]
mov word [eax + 0x26e], di
cmp dword [ebp - 8], edi
jne 0x4065d6
cmp byte [ebp - 0xcc0], 0
jne 0x4065d6
mov eax, dword [0x413708]
mov ecx, dword [0x413aac]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x260], 1
jmp 0x4065ea
mov eax, dword [0x413708]
mov ecx, dword [0x413aac]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x260], edi
mov ecx, dword [0x413708]
lea eax, [ebp - 0xc0]
push eax
mov eax, dword [0x413aac]
mov eax, dword [eax + ecx*4]
add eax, 0x208
push eax
call esi
mov eax, dword [0x413708]
mov ecx, dword [0x413aac]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x258], edi
cmp byte [ebp - 0x16c8], 0
je 0x40666b
lea eax, [ebp - 0x16c8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040b488
mov edx, dword [0x413708]
pop ecx
mov ecx, dword [0x413aac]
mov ecx, dword [ecx + edx*4]
mov dword [ecx + 0x258], eax
mov ecx, dword [0x413aac]
lea eax, [ebp - 0x16c8]
push eax
mov eax, dword [0x413708]
mov eax, dword [ecx + eax*4]
push dword [eax + 0x258]
call esi
inc dword [0x413708]
jmp 0x406963
mov eax, dword [0x413aac]
mov cx, word [0x413b34]
shl edi, 2
cmp dword [ebp - 4], 0
mov eax, dword [edi + eax]
mov word [eax + 0x268], cx
jne 0x4066b9
mov eax, dword [0x413aac]
mov cx, word [0x413b34]
mov eax, dword [edi + eax]
mov word [eax + 0x26e], cx
mov eax, dword [0x413aac]
mov eax, dword [edi + eax]
inc dword [eax + 0x270]
cmp byte [ebp - 0xcc0], 0
je 0x406908
lea eax, [ebp - 0xcc0]
push eax
mov eax, dword [0x413aac]
mov eax, dword [edi + eax]
add eax, 0x104
push eax
call esi
mov eax, dword [0x413aac]
mov cx, word [0x413b34]
mov eax, dword [edi + eax]
mov word [eax + 0x26a], cx
jmp 0x406908
xor edi, edi
cmp dword [0x413674], ebx
jle 0x406729
mov eax, dword [0x4136a0]
push dword [eax + edi*4]
lea eax, [ebp - 0x1c0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
mov eax, dword [0x413674]
je 0x406725
inc edi
cmp edi, eax
jl 0x406702
cmp edi, eax
jl 0x40674b
lea eax, [ebp - 0x16c8]
push eax
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0x1c0]
push eax
call fcn.004069ee
add esp, 0xc
jmp 0x406963
mov eax, dword [0x4136a0]
mov cx, word [0x413b34]
shl edi, 2
mov eax, dword [edi + eax]
mov word [eax + 0x268], cx
lea eax, [ebp - 0xc0]
push eax
mov eax, dword [0x4136a0]
mov eax, dword [edi + eax]
add eax, 0x208
push eax
call esi
cmp byte [ebp - 0x16c8], 0
je 0x406963
lea eax, [ebp - 0x16c8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040b488
pop ecx
mov ecx, dword [0x4136a0]
mov ecx, dword [edi + ecx]
mov dword [ecx + 0x258], eax
lea eax, [ebp - 0x16c8]
push eax
mov eax, dword [0x4136a0]
jmp 0x406958
cmp byte [ebp - 0xc0], 0
jne 0x4067d3
cmp byte [ebp - 0x16c8], 0
je 0x406963
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 0x4068ba
lea eax, [ebp - 0x17cc]
push eax
lea eax, [ebp - 0xbc0]
push eax
call ebx
test eax, eax
je 0x4068ba
push dword [0x4136d8]
lea eax, [ebp - 0xbc0]
push eax
call ebx
test eax, eax
je 0x4068ba
lea eax, [ebp - 0x1ad0]
push eax
lea eax, [ebp - 0xbc0]
push eax
call ebx
test eax, eax
je 0x4068ba
xor ebx, ebx
lea eax, [ebp - 0x1c0]
push ebx
push ebx
push eax
mov eax, dword [0x413688]
push dword [0x413a54]
push 0x27c
push dword [eax]
push ebx
call fcn.0040b5aa
mov edi, eax
add esp, 0x1c
cmp edi, ebx
je 0x406729
mov ax, word [0x413b34]
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 0x406963
lea eax, [ebp - 0x16c8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040b488
pop ecx
mov dword [edi + 0x260], eax
lea ecx, [ebp - 0x16c8]
push ecx
push eax
jmp 0x406961
xor edi, edi
cmp dword [0x413708], edi
jle 0x406729
mov eax, dword [0x413aac]
push dword [eax + edi*4]
lea eax, [ebp - 0x1c0]
push eax
call ebx
test eax, eax
mov eax, dword [0x413708]
je 0x4068e7
inc edi
cmp edi, eax
jl 0x4068c8
cmp edi, eax
jge 0x406729
mov eax, dword [0x413aac]
mov cx, word [0x413b34]
shl edi, 2
mov eax, dword [edi + eax]
mov word [eax + 0x26c], cx
lea eax, [ebp - 0xc0]
push eax
mov eax, dword [0x413aac]
mov eax, dword [edi + eax]
add eax, 0x208
push eax
call esi
cmp byte [ebp - 0x16c8], 0
je 0x406963
lea eax, [ebp - 0x16c8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0040b488
pop ecx
mov ecx, dword [0x413aac]
mov ecx, dword [edi + ecx]
mov dword [ecx + 0x258], eax
lea eax, [ebp - 0x16c8]
push eax
mov eax, dword [0x413aac]
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 [0x413a30]
call fcn.0040aa2b
lea eax, [ebp - 0x1ed8]
push esi
push eax
push 0x43
push dword [0x413a30]
call fcn.0040aa2b
mov eax, dword [0x413634]
add esp, 0x20
cmp eax, edi
je 0x4069b4
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
lea eax, [ebp - 0x1dd8]
push edi
push eax
lea eax, [ebp - 0x1ed8]
push eax
push dword [0x413638]
call dword [sym.imp.USER32.dll_MessageBoxA]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll__lclose]
mov eax, ebx
jmp 0x4069e9
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