Function at 0x401c30
Capabilities:
Copy file
Create directory
Create process on windows
Create shortcut via ishelllink
Delete file
Delete registry value
Enumerate files on windows
Get file attributes
Get file version info
Move file
Query environment variable
Query or enumerate registry key
Query or enumerate registry value
Read .ini file
Read file on windows
Self delete
Set current directory
Set file attributes
Set registry value
Write and execute a file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8fc
push esi
push edi
mov dword [ebp - 0x38], 0x417408
mov dword [ebp - 0x3c], 0x41b408
mov dword [ebp - 0x2c], 0x41f408
mov dword [ebp - 0x34], 0x423408
mov eax, dword [0x4a0bc8]
mov dword [ebp - 4], eax
mov dword [ebp - 0x24], 0
mov esi, dword [ebp + 8]
mov ecx, 7
lea edi, [ebp - 0x20]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x1c]
shl ecx, 0xe
add ecx, section..ndata
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x18]
shl edx, 0xe
add edx, section..ndata
mov dword [ebp - 0x30], edx
lea eax, [ebp - 0x1c]
mov dword [0x417404], eax
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x8e8], ecx
mov edx, dword [ebp - 0x8e8]
sub edx, 2
mov dword [ebp - 0x8e8], edx
cmp dword [ebp - 0x8e8], 0x45
ja case.0x401cc4.66
mov eax, dword [ebp - 0x8e8]
jmp dword [eax*4 + 0x404b00]
mov ecx, dword [ebp - 0x1c]
push ecx
push 0x415010
call fcn.00401163
add esp, 8
mov eax, dword [ebp - 0x1c]
jmp 0x404af8
push 0
call fcn.00404c80
push eax
push str.Aborting:___s_
call fcn.00401163
add esp, 8
push 0
mov edx, dword [ebp - 0x1c]
push edx
call fcn.0040113b
mov eax, 0x7fffffff
jmp 0x404af8
mov eax, dword [0x4971ec]
add eax, 1
mov dword [0x4971ec], eax
cmp dword [ebp - 4], 0
je 0x401d29
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov eax, 0x7fffffff
jmp 0x404af8
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.0040100a
sub eax, 1
mov dword [ebp - 0x40], eax
mov edx, dword [ebp - 0x40]
push edx
push str.Call:__d
call fcn.00401163
add esp, 8
push 0
mov eax, dword [ebp - 0x40]
push eax
call fcn.00401136
jmp 0x404af8
push 0
call fcn.00404c80
push eax
push str.detailprint:__s
call fcn.00401163
add esp, 8
push 0
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.0040113b
jmp case.0x401cc4.66
push 0
call fcn.00404c50
mov dword [ebp - 0x44], eax
mov edx, dword [ebp - 0x44]
push edx
push str.Sleep__d_
call fcn.00401163
add esp, 8
cmp dword [ebp - 0x44], 1
jle 0x401db4
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x8ec], eax
jmp 0x401dbe
mov dword [ebp - 0x8ec], 1
mov ecx, dword [ebp - 0x8ec]
push ecx
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp case.0x401cc4.66
push str.BringToFront
call fcn.00401163
add esp, 4
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.USER32.dll_SetForegroundWindow]
jmp case.0x401cc4.66
cmp dword [ebp - 0x14], 0
jne 0x401e19
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx*4 + 0x4a0cc0]
mov dword [eax*4 + 0x4a0c80], edx
push 1
call fcn.00404c50
mov ecx, dword [ebp - 0x1c]
mov dword [ecx*4 + 0x4a0cc0], eax
jmp 0x401e2d
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax*4 + 0x4a0c80]
mov dword [edx*4 + 0x4a0cc0], ecx
jmp case.0x401cc4.66
mov edx, dword [ebp - 0x14]
xor eax, eax
cmp dword [edx*4 + 0x4a0cc0], 0
sete al
mov ecx, dword [ebp + eax*4 - 0x1c]
mov dword [ebp - 0x48], ecx
mov edx, dword [ebp - 0x14]
mov eax, dword [edx*4 + 0x4a0cc0]
and eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
mov dword [ecx*4 + 0x4a0cc0], eax
mov eax, dword [ebp - 0x48]
jmp 0x404af8
mov edx, dword [ebp - 0x18]
mov eax, dword [edx*4 + 0x4a0cc0]
push eax
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.00401046
jmp case.0x401cc4.66
cmp dword [0x4971f8], 0
je 0x401e9a
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [0x4971f8]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
cmp dword [0x4971e4], 0
je 0x401eb4
mov ecx, dword [ebp - 0x1c]
push ecx
mov edx, dword [0x4971e4]
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
jmp case.0x401cc4.66
push 0xfffffffffffffff0
call fcn.00404c80
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x4c]
push ecx
push str.SetFileAttributes:___s_:_08X
call fcn.00401163
add esp, 0xc
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp - 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
jne 0x401f00
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
push str.SetFileAttributes_failed.
call fcn.00401163
add esp, 4
jmp case.0x401cc4.66
push 0xfffffffffffffff0
call fcn.00404c80
mov dword [ebp - 0x50], eax
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp - 0x50]
push eax
push str.CreateDirectory:___s____d_
call fcn.00401163
add esp, 0xc
mov ecx, dword [ebp - 0x50]
push ecx
call fcn.00401168
mov dword [ebp - 0x54], eax
mov edx, 0x63
mov word [ebp - 0x58], dx
cmp dword [ebp - 0x54], 0
je 0x402003
movzx eax, word [ebp - 0x58]
test eax, eax
je 0x402003
push 0x5c
mov ecx, dword [ebp - 0x54]
push ecx
call fcn.00401159
mov dword [ebp - 0x54], eax
mov edx, dword [ebp - 0x54]
mov ax, word [edx]
mov word [ebp - 0x58], ax
xor ecx, ecx
mov edx, dword [ebp - 0x54]
mov word [edx], cx
push 0
mov eax, dword [ebp - 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x401fda
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x401faf
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov ecx, dword [ebp - 0x50]
push ecx
push str.CreateDirectory:_cant_create___s___err_d_
call fcn.00401163
add esp, 0xc
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
jmp 0x401fd8
mov eax, dword [ebp - 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
and eax, 0x10
jne 0x401fd8
mov ecx, dword [ebp - 0x50]
push ecx
push str.CreateDirectory:_cant_create___s____a_file_already_exists
call fcn.00401163
add esp, 8
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
jmp 0x401feb
mov eax, dword [ebp - 0x50]
push eax
push str.CreateDirectory:___s__created
call fcn.00401163
add esp, 8
mov ecx, dword [ebp - 0x54]
mov dx, word [ebp - 0x58]
mov word [ecx], dx
mov eax, dword [ebp - 0x54]
add eax, 2
mov dword [ebp - 0x54], eax
jmp 0x401f43
cmp dword [ebp - 0x18], 0
je 0x40202a
push 0xffffffffffffffe6
call fcn.0040106e
mov ecx, dword [ebp - 0x50]
push ecx
push 0x4fb000
call fcn.00401087
mov edx, dword [ebp - 0x50]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
jmp 0x402031
push 0xfffffffffffffff5
call fcn.0040106e
jmp case.0x401cc4.66
push 0
call fcn.00404c80
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
push eax
call fcn.00401064
test eax, eax
je 0x40206a
mov ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp - 0x5c]
push edx
push str.IfFileExists:_file___s__exists__jumping__d
call fcn.00401163
add esp, 0xc
mov eax, dword [ebp - 0x18]
jmp 0x404af8
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x5c]
push ecx
push str.IfFileExists:_file___s__does_not_exist__jumping__d
call fcn.00401163
add esp, 0xc
mov eax, dword [ebp - 0x14]
jmp 0x404af8
push 0xffffffffffffffd0
call fcn.00404c80
mov dword [ebp - 0x64], eax
push 0xffffffffffffffdf
call fcn.00404c80
mov dword [ebp - 0x60], eax
push 0x13
call fcn.00404c80
mov dword [ebp - 0x68], eax
mov edx, dword [ebp - 0x68]
push edx
push str.Rename:__s
call fcn.00401163
add esp, 8
mov eax, dword [ebp - 0x60]
push eax
mov ecx, dword [ebp - 0x64]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x4020d1
push 0xffffffffffffffe3
call fcn.0040106e
jmp 0x402125
cmp dword [ebp - 0x14], 0
je 0x40210b
mov edx, dword [ebp - 0x64]
push edx
call fcn.00401064
test eax, eax
je 0x40210b
mov eax, dword [ebp - 0x60]
push eax
mov ecx, dword [ebp - 0x64]
push ecx
call fcn.004010cd
push 0xffffffffffffffe4
call fcn.0040106e
mov edx, dword [ebp - 0x68]
push edx
push str.Rename_on_reboot:__s
call fcn.00401163
add esp, 8
jmp 0x402125
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x68]
push ecx
push str.Rename_failed:__s
call fcn.00401163
add esp, 8
jmp case.0x401cc4.66
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x6c], edx
push 0
call fcn.00404c80
mov dword [ebp - 0x74], eax
lea eax, [ebp - 0x70]
push eax
mov ecx, dword [ebp - 0x6c]
push ecx
push 0x2000
mov edx, dword [ebp - 0x74]
push edx
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
test eax, eax
jne 0x402168
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
xor ecx, ecx
mov edx, dword [ebp - 0x6c]
mov word [edx], cx
jmp 0x4021af
mov eax, dword [ebp - 0x70]
cmp eax, dword [ebp - 0x74]
jbe 0x4021af
mov ecx, dword [ebp - 0x70]
movzx edx, word [ecx]
test edx, edx
je 0x4021af
mov eax, dword [ebp - 0x74]
push eax
call fcn.00401064
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
je 0x40219e
mov ecx, dword [ebp - 0x78]
add ecx, 0x2c
push ecx
mov edx, dword [ebp - 0x70]
push edx
call fcn.00401087
jmp 0x4021af
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
xor ecx, ecx
mov edx, dword [ebp - 0x6c]
mov word [edx], cx
cmp dword [ebp - 0x14], 0
jne 0x4021c8
push 0x2000
mov eax, dword [ebp - 0x6c]
push eax
mov ecx, dword [ebp - 0x6c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
jmp case.0x401cc4.66
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x7c], edx
push 0xffffffffffffffff
call fcn.00404c80
mov dword [ebp - 0x84], eax
lea eax, [ebp - 0x80]
push eax
mov ecx, dword [ebp - 0x7c]
push ecx
push 0x2000
push 0
mov edx, dword [ebp - 0x84]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_SearchPathW]
test eax, eax
jne 0x402213
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
xor ecx, ecx
mov edx, dword [ebp - 0x7c]
mov word [edx], cx
jmp case.0x401cc4.66
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x88], eax
push 0xffffffffffffffef
call fcn.00404c80
push eax
mov ecx, dword [ebp - 0x88]
push ecx
call fcn.00401005
test eax, eax
jne 0x402242
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
jmp case.0x401cc4.66
push 0x31
call fcn.00404c80
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x1c]
and eax, 7
mov dword [ebp - 0x90], eax
mov ecx, dword [ebp - 0x8c]
push ecx
mov edx, dword [ebp - 0x1c]
sar edx, 3
and edx, 2
push edx
mov eax, dword [ebp - 0x90]
push eax
push str.File:_overwriteflag_d__allowskipfilesflag_d__name__s_
call fcn.00401163
add esp, 0x10
mov ecx, dword [ebp - 0x8c]
push ecx
call fcn.0040107d
test eax, eax
je 0x4022a7
mov edx, dword [ebp - 0x8c]
push edx
mov eax, dword [ebp - 0x38]
push eax
call fcn.00401087
jmp 0x4022c8
mov ecx, dword [ebp - 0x8c]
push ecx
push 0x4fb000
mov edx, dword [ebp - 0x38]
push edx
call fcn.00401087
push eax
call fcn.004010be
push eax
call fcn.0040101e
mov eax, dword [ebp - 0x38]
push eax
call fcn.004010dc
cmp dword [ebp - 0x90], 3
jl 0x402338
mov ecx, dword [ebp - 0x38]
push ecx
call fcn.00401064
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0xa0], 0
cmp dword [ebp - 0x9c], 0
je 0x402316
lea edx, [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x9c]
add eax, 0x14
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
mov dword [ebp - 0xa0], eax
mov ecx, dword [ebp - 0x90]
sub ecx, 3
or ecx, 0x80000000
and ecx, dword [ebp - 0xa0]
neg ecx
sbb ecx, ecx
add ecx, 1
mov dword [ebp - 0x90], ecx
cmp dword [ebp - 0x90], 0
jne 0x40234a
mov edx, dword [ebp - 0x38]
push edx
call fcn.004010f0
xor eax, eax
cmp dword [ebp - 0x90], 1
setne al
add eax, 1
push eax
push 0x40000000
mov ecx, dword [ebp - 0x38]
push ecx
call fcn.00401032
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0xffffffff
jne 0x40248a
cmp dword [ebp - 0x90], 0
je 0x4023c1
mov edx, dword [ebp - 0x8c]
push edx
push 0xffffffffffffffe2
call fcn.0040113b
cmp dword [ebp - 0x90], 2
jne 0x4023a4
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x90]
push ecx
mov edx, dword [ebp - 0x38]
push edx
push str.File:_skipped:___s___overwriteflag_d_
call fcn.00401163
add esp, 0xc
jmp case.0x401cc4.66
mov eax, dword [ebp - 0x38]
push eax
push str.File:_error_creating___s_
call fcn.00401163
add esp, 8
push section..ndata
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.00401087
mov edx, dword [ebp - 0x38]
push edx
push section..ndata
call fcn.00401087
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x3c]
push ecx
call fcn.0040103c
mov edx, dword [ebp - 0x2c]
push edx
push section..ndata
call fcn.00401087
mov eax, dword [ebp - 0x1c]
sar eax, 3
push eax
mov ecx, dword [ebp - 0x3c]
push ecx
call fcn.004010e6
mov dword [ebp - 0x8f0], eax
cmp dword [ebp - 0x8f0], 4
je 0x402433
cmp dword [ebp - 0x8f0], 5
je 0x402445
jmp 0x402468
push str.File:_error__user_retry
call fcn.00401163
add esp, 4
jmp 0x4022d1
push str.File:_error__user_cancel
call fcn.00401163
add esp, 4
mov edx, dword [0x4a0cc8]
add edx, 1
mov dword [0x4a0cc8], edx
xor eax, eax
jmp 0x404af8
push str.File:_error__user_abort
call fcn.00401163
add esp, 4
mov eax, dword [ebp - 0x38]
push eax
push 0xfffffffffffffffa
call fcn.0040113b
mov eax, 0x7fffffff
jmp 0x404af8
mov ecx, dword [ebp - 0x8c]
push ecx
push 0xffffffffffffffea
call fcn.0040113b
mov edx, dword [0x4a0cf4]
add edx, 1
mov dword [0x4a0cf4], edx
push 0
push 0
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.00401091
mov dword [ebp - 0x94], eax
mov edx, dword [0x4a0cf4]
sub edx, 1
mov dword [0x4a0cf4], edx
mov eax, dword [ebp - 0x38]
push eax
mov ecx, dword [ebp - 0x94]
push ecx
push str.File:_wrote__d_to___s_
call fcn.00401163
add esp, 0xc
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4024f4
cmp dword [ebp - 0xc], 0xffffffff
je 0x40250b
lea edx, [ebp - 0x10]
push edx
push 0
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x98]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileTime]
mov edx, dword [ebp - 0x98]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x94], 0
jge 0x40257b
cmp dword [ebp - 0x94], 0xfffffffe
jne 0x402547
push 0xffffffffffffffe9
mov eax, dword [ebp - 0x38]
push eax
call fcn.0040103c
mov ecx, dword [ebp - 0x8c]
push ecx
mov edx, dword [ebp - 0x38]
push edx
call fcn.0040101e
jmp 0x402552
push 0xffffffffffffffee
mov eax, dword [ebp - 0x38]
push eax
call fcn.0040103c
mov ecx, dword [ebp - 0x38]
push ecx
push 0x415544
call fcn.00401163
add esp, 8
push 0x200010
mov edx, dword [ebp - 0x38]
push edx
call fcn.004010e6
mov eax, 0x7fffffff
jmp 0x404af8
jmp case.0x401cc4.66
push 0
call fcn.00404c80
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xa4]
push eax
push str.Delete:___s_
call fcn.00401163
add esp, 8
mov ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp - 0xa4]
push edx
call fcn.00401019
jmp case.0x401cc4.66
push 0x31
call fcn.00404c80
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xac]
push eax
mov ecx, dword [ebp - 0x1c]
push ecx
push str.MessageBox:__d___s_
call fcn.00401163
add esp, 0xc
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [ebp - 0xac]
push eax
call fcn.004010e6
mov dword [ebp - 0xa8], eax
cmp dword [ebp - 0xa8], 0
je 0x402622
mov ecx, dword [ebp - 0xa8]
cmp ecx, dword [ebp - 0x14]
jne 0x40260d
mov eax, dword [ebp - 0x10]
jmp 0x404af8
mov edx, dword [ebp - 0xa8]
cmp edx, dword [ebp - 0xc]
jne 0x402620
mov eax, dword [ebp - 8]
jmp 0x404af8
jmp 0x40262b
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
jmp case.0x401cc4.66
push 0xfffffffffffffff0
call fcn.00404c80
mov dword [ebp - 0xb0], eax
mov ecx, dword [ebp - 0xb0]
push ecx
push str.RMDir:___s_
call fcn.00401163
add esp, 8
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp - 0xb0]
push eax
call fcn.00401019
jmp case.0x401cc4.66
push 1
call fcn.00404c80
mov dword [ebp - 0xb4], eax
mov ecx, dword [ebp - 0xb4]
push ecx
call fcn.00401096
push eax
mov edx, dword [ebp - 0x28]
push edx
call fcn.00401046
jmp case.0x401cc4.66
push 2
call fcn.00404c50
mov dword [ebp - 0xc0], eax
push 3
call fcn.00404c50
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0xb8], eax
push 1
call fcn.00404c80
mov dword [ebp - 0xc4], eax
xor ecx, ecx
mov edx, dword [ebp - 0xb8]
mov word [edx], cx
cmp dword [ebp - 0x14], 0
je 0x4026dc
cmp dword [ebp - 0xc0], 0
je 0x4027a7
mov eax, dword [ebp - 0xc4]
push eax
call fcn.00401096
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0xbc], 0
jge 0x402709
mov ecx, dword [ebp - 0xc8]
add ecx, dword [ebp - 0xbc]
mov dword [ebp - 0xbc], ecx
cmp dword [ebp - 0xbc], 0
jl 0x4027a7
mov edx, dword [ebp - 0xbc]
cmp edx, dword [ebp - 0xc8]
jle 0x402730
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ebp - 0xc4]
lea eax, [edx + ecx*2]
push eax
mov ecx, dword [ebp - 0xb8]
push ecx
call fcn.00401087
cmp dword [ebp - 0xc0], 0
je 0x4027a7
cmp dword [ebp - 0xc0], 0
jge 0x402776
mov edx, dword [ebp - 0xb8]
push edx
call fcn.00401096
add eax, dword [ebp - 0xc0]
mov dword [ebp - 0xc0], eax
cmp dword [ebp - 0xc0], 0
jge 0x402789
mov dword [ebp - 0xc0], 0
cmp dword [ebp - 0xc0], 0x2000
jge 0x4027a7
xor eax, eax
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xb8]
mov word [edx + ecx*2], ax
jmp case.0x401cc4.66
push 0x20
call fcn.00404c80
mov dword [ebp - 0xcc], eax
push 0x31
call fcn.00404c80
mov dword [ebp - 0xd0], eax
cmp dword [ebp - 0xc], 0
jne 0x4027ee
mov eax, dword [ebp - 0xd0]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x4027ec
mov eax, dword [ebp - 0x14]
jmp 0x404af8
jmp 0x40280e
mov edx, dword [ebp - 0xd0]
push edx
mov eax, dword [ebp - 0xcc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x40280e
mov eax, dword [ebp - 0x14]
jmp 0x404af8
mov eax, dword [ebp - 0x10]
jmp 0x404af8
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0xd4], ecx
push 1
call fcn.00404c80
mov dword [ebp - 0xd8], eax
push 0x2000
mov edx, dword [ebp - 0xd4]
push edx
mov eax, dword [ebp - 0xd8]
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
je 0x402867
cmp dword [ebp - 0x14], 0
je 0x40287b
mov ecx, dword [ebp - 0xd4]
push ecx
mov edx, dword [ebp - 0xd8]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x40287b
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
xor ecx, ecx
mov edx, dword [ebp - 0xd4]
mov word [edx], cx
xor eax, eax
mov ecx, dword [ebp - 0xd4]
mov word [ecx + 0x3ffe], ax
jmp case.0x401cc4.66
push 0
call fcn.00404c50
mov dword [ebp - 0xdc], eax
push 1
call fcn.00404c50
mov dword [ebp - 0xe0], eax
cmp dword [ebp - 8], 0
jne 0x4028dd
mov edx, dword [ebp - 0xdc]
cmp edx, dword [ebp - 0xe0]
jge 0x4028c5
mov eax, dword [ebp - 0x10]
jmp 0x404af8
mov eax, dword [ebp - 0xdc]
cmp eax, dword [ebp - 0xe0]
jle 0x4028db
mov eax, dword [ebp - 0xc]
jmp 0x404af8
jmp 0x402909
mov ecx, dword [ebp - 0xdc]
cmp ecx, dword [ebp - 0xe0]
jae 0x4028f3
mov eax, dword [ebp - 0x10]
jmp 0x404af8
mov edx, dword [ebp - 0xdc]
cmp edx, dword [ebp - 0xe0]
jbe 0x402909
mov eax, dword [ebp - 0xc]
jmp 0x404af8
mov eax, dword [ebp - 0x14]
jmp 0x404af8
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0xe4], eax
push 1
call fcn.00404c50
mov dword [ebp - 0xe8], eax
push 2
call fcn.00404c50
mov dword [ebp - 0xec], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x8f4], ecx
cmp dword [ebp - 0x8f4], 0xc
ja case.default.0x402950
mov edx, dword [ebp - 0x8f4]
jmp dword [edx*4 + 0x404c18]
mov eax, dword [ebp - 0xe8]
add eax, dword [ebp - 0xec]
mov dword [ebp - 0xe8], eax
jmp case.default.0x402950
mov ecx, dword [ebp - 0xe8]
sub ecx, dword [ebp - 0xec]
mov dword [ebp - 0xe8], ecx
jmp case.default.0x402950
mov edx, dword [ebp - 0xe8]
imul edx, dword [ebp - 0xec]
mov dword [ebp - 0xe8], edx
jmp case.default.0x402950
cmp dword [ebp - 0xec], 0
je 0x4029bb
mov eax, dword [ebp - 0xe8]
cdq
idiv dword [ebp - 0xec]
mov dword [ebp - 0xe8], eax
jmp 0x4029ce
mov dword [ebp - 0xe8], 0
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
jmp case.default.0x402950
mov ecx, dword [ebp - 0xe8]
or ecx, dword [ebp - 0xec]
mov dword [ebp - 0xe8], ecx
jmp case.default.0x402950
mov edx, dword [ebp - 0xe8]
and edx, dword [ebp - 0xec]
mov dword [ebp - 0xe8], edx
jmp case.default.0x402950
mov eax, dword [ebp - 0xe8]
xor eax, dword [ebp - 0xec]
mov dword [ebp - 0xe8], eax
jmp case.default.0x402950
xor ecx, ecx
cmp dword [ebp - 0xe8], 0
sete cl
mov dword [ebp - 0xe8], ecx
jmp case.default.0x402950
cmp dword [ebp - 0xe8], 0
jne 0x402a4d
cmp dword [ebp - 0xec], 0
jne 0x402a4d
mov dword [ebp - 0x8f8], 0
jmp 0x402a57
mov dword [ebp - 0x8f8], 1
mov edx, dword [ebp - 0x8f8]
mov dword [ebp - 0xe8], edx
jmp case.default.0x402950
cmp dword [ebp - 0xe8], 0
je 0x402a86
cmp dword [ebp - 0xec], 0
je 0x402a86
mov dword [ebp - 0x8fc], 1
jmp 0x402a90
mov dword [ebp - 0x8fc], 0
mov eax, dword [ebp - 0x8fc]
mov dword [ebp - 0xe8], eax
jmp case.default.0x402950
cmp dword [ebp - 0xec], 0
je 0x402abc
mov eax, dword [ebp - 0xe8]
cdq
idiv dword [ebp - 0xec]
mov dword [ebp - 0xe8], edx
jmp 0x402acf
mov dword [ebp - 0xe8], 0
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
jmp case.default.0x402950
mov edx, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xec]
shl edx, cl
mov dword [ebp - 0xe8], edx
jmp case.default.0x402950
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xec]
sar eax, cl
mov dword [ebp - 0xe8], eax
mov ecx, dword [ebp - 0xe8]
push ecx
mov edx, dword [ebp - 0xe4]
push edx
call fcn.00401046
jmp case.0x401cc4.66
push 1
call fcn.00404c80
mov dword [ebp - 0xf0], eax
push 2
call fcn.00404c50
push eax
mov eax, dword [ebp - 0xf0]
push eax
mov ecx, dword [ebp - 0x28]
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp case.0x401cc4.66
mov edx, dword [0x417400]
mov dword [ebp - 0xf4], edx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xf8], eax
cmp dword [ebp - 0xf8], 0
je 0x402c11
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ebp - 0xf8]
sub edx, 1
mov dword [ebp - 0xf8], edx
test ecx, ecx
je 0x402b95
cmp dword [ebp - 0xf4], 0
je 0x402b95
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax]
mov dword [ebp - 0xf4], ecx
jmp 0x402b63
cmp dword [ebp - 0xf4], 0
jne 0x402bcd
mov edx, dword [ebp - 0x14]
push edx
push str.Exch:_stack____d_elements
call fcn.00401163
add esp, 8
push 0x200010
push 0xffffffffffffffe8
push 0
call fcn.0040103c
push eax
call fcn.004010e6
mov eax, 0x7fffffff
jmp 0x404af8
mov eax, dword [ebp - 0xf4]
add eax, 4
push eax
mov ecx, dword [ebp - 0x38]
push ecx
call fcn.00401087
mov edx, dword [0x417400]
add edx, 4
push edx
mov eax, dword [ebp - 0xf4]
add eax, 4
push eax
call fcn.00401087
mov ecx, dword [ebp - 0x38]
push ecx
mov edx, dword [0x417400]
add edx, 4
push edx
call fcn.00401087
jmp 0x402caa
cmp dword [ebp - 0x18], 0
je 0x402c6b
cmp dword [ebp - 0xf4], 0
jne 0x402c3b
push str.Pop:_stack_empty
call fcn.00401163
add esp, 4
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
jmp case.0x401cc4.66
mov ecx, dword [ebp - 0xf4]
add ecx, 4
push ecx
mov edx, dword [ebp - 0x28]
push edx
call fcn.00401087
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax]
mov dword [0x417400], ecx
mov edx, dword [ebp - 0xf4]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x402caa
push 0x4004
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0xf4]
add ecx, 4
push ecx
call fcn.0040103c
mov edx, dword [ebp - 0xf4]
mov eax, dword [0x417400]
mov dword [edx], eax
mov ecx, dword [ebp - 0xf4]
mov dword [0x417400], ecx
jmp case.0x401cc4.66
push 3
call fcn.00404c50
mov dword [ebp - 0x104], eax
push 4
call fcn.00404c50
mov dword [ebp - 0x100], eax
mov edx, dword [ebp - 8]
and edx, 1
je 0x402cde
push 0x33
call fcn.00404c80
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 8]
and eax, 2
je 0x402cf3
push 0x44
call fcn.00404c80
mov dword [ebp - 0x100], eax
cmp dword [ebp - 0x20], 0x21
jne 0x402d8c
push 1
call fcn.00404c50
mov dword [ebp - 0x10c], eax
push 2
call fcn.00404c50
mov dword [ebp - 0x108], eax
mov ecx, dword [ebp - 8]
sar ecx, 2
test ecx, ecx
je 0x402d62
lea edx, [ebp - 0xfc]
push edx
mov eax, dword [ebp - 8]
sar eax, 2
push eax
push 0
mov ecx, dword [ebp - 0x100]
push ecx
mov edx, dword [ebp - 0x104]
push edx
mov eax, dword [ebp - 0x108]
push eax
mov ecx, dword [ebp - 0x10c]
push ecx
call dword [sym.imp.USER32.dll_SendMessageTimeoutW]
neg eax
sbb eax, eax
add eax, 1
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
jmp 0x402d8a
mov edx, dword [ebp - 0x100]
push edx
mov eax, dword [ebp - 0x104]
push eax
mov ecx, dword [ebp - 0x108]
push ecx
mov edx, dword [ebp - 0x10c]
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0xfc], eax
jmp 0x402de8
push 1
call fcn.00404c80
mov dword [ebp - 0x110], eax
push 0x12
call fcn.00404c80
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x114]
movzx ecx, word [eax]
neg ecx
sbb ecx, ecx
and ecx, dword [ebp - 0x114]
push ecx
mov edx, dword [ebp - 0x110]
movzx eax, word [edx]
neg eax
sbb eax, eax
and eax, dword [ebp - 0x110]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
mov edx, dword [ebp - 0x104]
push edx
call dword [sym.imp.USER32.dll_FindWindowExW]
mov dword [ebp - 0xfc], eax
cmp dword [ebp - 0x1c], 0
jl 0x402dfe
mov eax, dword [ebp - 0xfc]
push eax
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.00401046
jmp case.0x401cc4.66
push 0
call fcn.00404c50
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x402e1d
mov eax, dword [ebp - 0x18]
jmp 0x404af8
mov eax, dword [ebp - 0x14]
jmp 0x404af8
push 2
call fcn.00404c50
push eax
push 1
call fcn.00404c50
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
mov edx, dword [ebp - 0x28]
push edx
call fcn.00401046
jmp case.0x401cc4.66
mov eax, dword [0x4a0c28]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp - 0x118]
push ecx
push 0xffffffffffffffeb
push 0
call fcn.00404c50
push eax
call dword [sym.imp.USER32.dll_SetWindowLongW]
jmp case.0x401cc4.66
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
mov dword [ebp - 0x130], eax
lea ecx, [ebp - 0x12c]
push ecx
mov edx, dword [ebp - 0x130]
push edx
call dword [sym.imp.USER32.dll_GetClientRect]
push 0x10
mov eax, dword [ebp - 0x14]
imul eax, dword [ebp - 0x120]
push eax
mov ecx, dword [ebp - 0x14]
imul ecx, dword [ebp - 0x124]
push ecx
push 0
push 0
call fcn.00404c80
push eax
push 0
call dword [sym.imp.USER32.dll_LoadImageW]
mov dword [ebp - 0x11c], eax
mov edx, dword [ebp - 0x11c]
push edx
push 0
push 0x172
mov eax, dword [ebp - 0x130]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x402f03
mov ecx, dword [ebp - 0x11c]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp case.0x401cc4.66
push 0x48
push 0x5a
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push eax
push 2
call fcn.00404c50
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
neg eax
mov dword [0x42b408], eax
push 3
call fcn.00404c50
mov dword [0x42b418], eax
mov eax, dword [ebp - 0xc]
and eax, 1
mov byte [0x42b41c], al
mov ecx, dword [ebp - 0xc]
and ecx, 2
mov byte [0x42b41d], cl
mov edx, dword [ebp - 0xc]
and edx, 4
mov byte [0x42b41e], dl
mov byte [0x42b41f], 1
mov eax, dword [ebp - 0x18]
push eax
push 0x42b424
call fcn.0040103c
push 0x42b408
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
push eax
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.00401046
jmp case.0x401cc4.66
push 0
call fcn.00404c50
mov dword [ebp - 0x138], eax
push 1
call fcn.00404c50
mov dword [ebp - 0x134], eax
cmp dword [ebp - 0x14], 0
je 0x402fbe
push str.HideWindow
call fcn.00401163
add esp, 4
cmp dword [ebp - 0x10], 0
jne 0x402fda
mov edx, dword [ebp - 0x134]
push edx
mov eax, dword [ebp - 0x138]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x402fee
mov ecx, dword [ebp - 0x134]
push ecx
mov edx, dword [ebp - 0x138]
push edx
call dword [sym.imp.USER32.dll_EnableWindow]
jmp case.0x401cc4.66
push 0
call fcn.00404c80
mov dword [ebp - 0x148], eax
push 0x31
call fcn.00404c80
mov dword [ebp - 0x144], eax
push 0x22
call fcn.00404c80
mov dword [ebp - 0x140], eax
push 0x15
call fcn.00404c80
mov dword [ebp - 0x14c], eax
push 0xffffffffffffffec
call fcn.0040106e
mov eax, dword [ebp - 0x10]
push eax
push 0x4fb000
mov ecx, dword [ebp - 0x140]
movzx edx, word [ecx]
neg edx
sbb edx, edx
and edx, dword [ebp - 0x140]
push edx
mov eax, dword [ebp - 0x144]
push eax
mov ecx, dword [ebp - 0x148]
movzx edx, word [ecx]
neg edx
sbb edx, edx
and edx, dword [ebp - 0x148]
push edx
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov dword [ebp - 0x13c], eax
cmp dword [ebp - 0x13c], 0x21
jge 0x4030b3
mov ecx, dword [ebp - 0x13c]
push ecx
mov edx, dword [ebp - 0x140]
push edx
mov eax, dword [ebp - 0x144]
push eax
mov ecx, dword [ebp - 0x148]
push ecx
push str.ExecShell:_warning:_error____s_:_file:__s__params:__s___d
call fcn.00401163
add esp, 0x14
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
jmp 0x4030d5
mov eax, dword [ebp - 0x140]
push eax
mov ecx, dword [ebp - 0x144]
push ecx
mov edx, dword [ebp - 0x148]
push edx
push str.ExecShell:_success____s_:_file:__s__params:__s__
call fcn.00401163
add esp, 0x10
jmp case.0x401cc4.66
push 0
call fcn.00404c80
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0x150]
push eax
push str.Exec:_command__s_
call fcn.00401163
add esp, 8
mov ecx, dword [ebp - 0x150]
push ecx
push 0xffffffffffffffeb
call fcn.0040113b
mov edx, dword [ebp - 0x150]
push edx
call fcn.0040115e
mov dword [ebp - 0x154], eax
cmp dword [ebp - 0x154], 0
je 0x4031ae
mov eax, dword [ebp - 0x150]
push eax
push str.Exec:_success____s__
call fcn.00401163
add esp, 8
cmp dword [ebp - 0x14], 0
je 0x40319f
push 0x64
mov ecx, dword [ebp - 0x154]
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x403161
push 0xf
call fcn.00401145
jmp 0x403142
lea edx, [ebp - 0x158]
push edx
mov eax, dword [ebp - 0x154]
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
cmp dword [ebp - 0x18], 0
jl 0x40318d
mov ecx, dword [ebp - 0x158]
push ecx
mov edx, dword [ebp - 0x30]
push edx
call fcn.00401046
jmp 0x40319f
cmp dword [ebp - 0x158], 0
je 0x40319f
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x154]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4031cb
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x150]
push eax
push str.Exec:_failed_createprocess____s__
call fcn.00401163
add esp, 8
jmp case.0x401cc4.66
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x15c], ecx
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x168], edx
push 2
call fcn.00404c80
mov dword [ebp - 0x164], eax
mov eax, dword [ebp - 0x164]
push eax
call fcn.00401064
mov dword [ebp - 0x160], eax
cmp dword [ebp - 0x160], 0
je 0x403238
mov ecx, dword [ebp - 0x160]
mov edx, dword [ecx + 0x14]
push edx
mov eax, dword [ebp - 0x168]
push eax
call fcn.00401046
mov ecx, dword [ebp - 0x160]
mov edx, dword [ecx + 0x18]
push edx
mov eax, dword [ebp - 0x15c]
push eax
call fcn.00401046
jmp 0x403257
xor ecx, ecx
mov edx, dword [ebp - 0x15c]
mov word [edx], cx
xor eax, eax
mov ecx, dword [ebp - 0x168]
mov word [ecx], ax
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
jmp case.0x401cc4.66
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x170], eax
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x180], ecx
push 0xffffffffffffffee
call fcn.00404c80
mov dword [ebp - 0x17c], eax
lea edx, [ebp - 0x178]
push edx
mov eax, dword [ebp - 0x17c]
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov dword [ebp - 0x174], eax
xor ecx, ecx
mov edx, dword [ebp - 0x170]
mov word [edx], cx
xor eax, eax
mov ecx, dword [ebp - 0x180]
mov word [ecx], ax
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x174], 0
je 0x403367
mov eax, dword [ebp - 0x174]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x184], eax
cmp dword [ebp - 0x184], 0
je 0x403367
mov ecx, dword [ebp - 0x184]
push ecx
mov edx, dword [ebp - 0x174]
push edx
push 0
mov eax, dword [ebp - 0x17c]
push eax
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x40335a
lea ecx, [ebp - 0x188]
push ecx
lea edx, [ebp - 0x16c]
push edx
push 0x41578c
mov eax, dword [ebp - 0x184]
push eax
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x40335a
mov ecx, dword [ebp - 0x16c]
mov edx, dword [ecx + 8]
push edx
mov eax, dword [ebp - 0x170]
push eax
call fcn.00401046
mov ecx, dword [ebp - 0x16c]
mov edx, dword [ecx + 0xc]
push edx
mov eax, dword [ebp - 0x180]
push eax
call fcn.00401046
mov ecx, dword [ebp - 0x24]
sub ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x184]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp case.0x401cc4.66
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
cmp dword [0x4a0cf8], 0
jl 0x4034d5
mov dword [ebp - 0x18c], 0
push 0xfffffffffffffff0
call fcn.00404c80
mov dword [ebp - 0x194], eax
push 1
call fcn.00404c80
mov dword [ebp - 0x190], eax
cmp dword [ebp - 0xc], 0
je 0x4033bf
mov ecx, dword [ebp - 0x194]
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [ebp - 0x18c], eax
cmp dword [ebp - 0x18c], 0
jne 0x4033df
push 8
push 0
mov edx, dword [ebp - 0x194]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov dword [ebp - 0x18c], eax
cmp dword [ebp - 0x18c], 0
je 0x4034b8
mov eax, dword [ebp - 0x190]
push eax
mov ecx, dword [ebp - 0x18c]
push ecx
call fcn.004010eb
mov dword [ebp - 0x198], eax
cmp dword [ebp - 0x198], 0
je 0x40346a
mov edx, dword [ebp - 0x24]
sub edx, 1
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x14], 0
je 0x40343b
mov eax, dword [ebp - 0x14]
push eax
call fcn.0040106e
call dword [ebp - 0x198]
test eax, eax
je 0x403439
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
jmp 0x403468
mov edx, dword [ebp - 0x198]
mov dword [ebp - 0x19c], edx
push section..data
push 0x417400
push section..ndata
push 0x2000
mov eax, dword [ebp - 4]
push eax
call dword [ebp - 0x19c]
add esp, 0x14
jmp 0x403493
mov ecx, dword [ebp - 0x190]
push ecx
push 0xfffffffffffffff7
call fcn.0040113b
mov edx, dword [ebp - 0x194]
push edx
mov eax, dword [ebp - 0x190]
push eax
push 0x415790
call fcn.00401163
add esp, 0xc
cmp dword [ebp - 0x10], 0
jne 0x4034b6
mov ecx, dword [ebp - 0x18c]
push ecx
call fcn.00401073
test eax, eax
je 0x4034b6
mov edx, dword [ebp - 0x18c]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x4034d3
push 0xfffffffffffffff6
call fcn.0040106e
mov eax, dword [ebp - 0x194]
push eax
push str.Error_registering_DLL:_Could_not_load__s
call fcn.00401163
add esp, 8
jmp 0x4034e9
push 0xffffffffffffffe7
call fcn.0040106e
push str.Error_registering_DLL:_Could_not_initialize_OLE
call fcn.00401163
add esp, 4
jmp case.0x401cc4.66
push 0xfffffffffffffff0
call fcn.00404c80
mov dword [ebp - 0x1b8], eax
push 0xffffffffffffffdf
call fcn.00404c80
mov dword [ebp - 0x1a0], eax
push 2
call fcn.00404c80
mov dword [ebp - 0x1b0], eax
push 0xffffffffffffffcd
call fcn.00404c80
mov dword [ebp - 0x1a4], eax
push 0x45
call fcn.00404c80
mov dword [ebp - 0x1ac], eax
mov ecx, dword [ebp - 0x1a0]
push ecx
call fcn.0040107d
test eax, eax
jne 0x403546
push 0x21
call fcn.00404c80
mov edx, dword [ebp - 0xc]
sar edx, 0x10
push edx
mov eax, dword [ebp - 0xc]
and eax, 0xff00
sar eax, 8
push eax
mov ecx, dword [ebp - 0xc]
and ecx, 0xff
push ecx
mov edx, dword [ebp - 0x1a4]
push edx
mov eax, dword [ebp - 0x1b0]
push eax
mov ecx, dword [ebp - 0x1a0]
push ecx
mov edx, dword [ebp - 0x1b8]
push edx
push str.CreateShortCut:_out:___s___in:___s__s___icon:__s__d__sw_d__hk_d
call fcn.00401163
add esp, 0x20
lea eax, [ebp - 0x1b4]
push eax
push 0x411630
push 1
push 0
push 0x413730
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov dword [ebp - 0x1a8], eax
cmp dword [ebp - 0x1a8], 0
jl 0x403737
lea ecx, [ebp - 0x1bc]
push ecx
push 0x4127e0
mov edx, dword [ebp - 0x1b4]
push edx
mov eax, dword [ebp - 0x1b4]
mov ecx, dword [eax]
mov edx, dword [ecx]
call edx
mov dword [ebp - 0x1a8], eax
cmp dword [ebp - 0x1a8], 0
jl 0x403723
mov eax, dword [ebp - 0x1a0]
push eax
mov ecx, dword [ebp - 0x1b4]
push ecx
mov edx, dword [ebp - 0x1b4]
mov eax, dword [edx]
mov ecx, dword [eax + 0x50]
call ecx
mov dword [ebp - 0x1a8], eax
push 0x4fb000
mov edx, dword [ebp - 0x1b4]
push edx
mov eax, dword [ebp - 0x1b4]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x24]
call edx
mov eax, dword [ebp - 0xc]
and eax, 0xff00
sar eax, 8
test eax, eax
je 0x403656
mov ecx, dword [ebp - 0xc]
and ecx, 0xff00
sar ecx, 8
push ecx
mov edx, dword [ebp - 0x1b4]
push edx
mov eax, dword [ebp - 0x1b4]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x3c]
call edx
mov eax, dword [ebp - 0xc]
sar eax, 0x10
push eax
mov ecx, dword [ebp - 0x1b4]
push ecx
mov edx, dword [ebp - 0x1b4]
mov eax, dword [edx]
mov ecx, dword [eax + 0x34]
call ecx
mov edx, dword [ebp - 0x1a4]
movzx eax, word [edx]
test eax, eax
je 0x4036a3
mov ecx, dword [ebp - 0xc]
and ecx, 0xff
push ecx
mov edx, dword [ebp - 0x1a4]
push edx
mov eax, dword [ebp - 0x1b4]
push eax
mov ecx, dword [ebp - 0x1b4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x44]
call eax
mov ecx, dword [ebp - 0x1b0]
push ecx
mov edx, dword [ebp - 0x1b4]
push edx
mov eax, dword [ebp - 0x1b4]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x2c]
call edx
mov eax, dword [ebp - 0x1ac]
push eax
mov ecx, dword [ebp - 0x1b4]
push ecx
mov edx, dword [ebp - 0x1b4]
mov eax, dword [edx]
mov ecx, dword [eax + 0x1c]
call ecx
cmp dword [ebp - 0x1a8], 0
jl 0x40370f
mov dword [ebp - 0x1a8], 0x80004005
push 1
mov edx, dword [ebp - 0x1b8]
push edx
mov eax, dword [ebp - 0x1bc]
push eax
mov ecx, dword [ebp - 0x1bc]
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
mov dword [ebp - 0x1a8], eax
mov ecx, dword [ebp - 0x1bc]
push ecx
mov edx, dword [ebp - 0x1bc]
mov eax, dword [edx]
mov ecx, dword [eax + 8]
call ecx
mov edx, dword [ebp - 0x1b4]
push edx
mov eax, dword [ebp - 0x1b4]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
call edx
cmp dword [ebp - 0x1a8], 0
jge 0x403752
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
push 0xfffffffffffffff0
call fcn.0040106e
jmp 0x403759
push 0xfffffffffffffff4
call fcn.0040106e
jmp case.0x401cc4.66
push 0
call fcn.00404c80
mov dword [ebp - 0x1c8], eax
push 0x11
call fcn.00404c80
mov dword [ebp - 0x1ec], eax
push 0x23
call fcn.00404c80
mov dword [ebp - 0x1c4], eax
mov ecx, dword [ebp - 0x1ec]
push ecx
mov edx, dword [ebp - 0x1c8]
push edx
push str.CopyFiles___s_____s_
call fcn.00401163
add esp, 0xc
mov eax, dword [ebp - 0x1c8]
push eax
call fcn.00401064
test eax, eax
jne 0x4037c7
push 0
push 0xfffffffffffffff9
call fcn.0040113b
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
jmp case.0x401cc4.66
mov edx, dword [ebp - 4]
mov dword [ebp - 0x1e8], edx
mov dword [ebp - 0x1e4], 2
mov eax, dword [ebp - 0x1c8]
push eax
call fcn.00401096
xor ecx, ecx
mov edx, dword [ebp - 0x1c8]
mov word [edx + eax*2 + 2], cx
mov eax, dword [ebp - 0x1ec]
push eax
call fcn.00401096
xor ecx, ecx
mov edx, dword [ebp - 0x1ec]
mov word [edx + eax*2 + 2], cx
mov eax, dword [ebp - 0x1c8]
mov dword [ebp - 0x1e0], eax
mov ecx, dword [ebp - 0x1ec]
mov dword [ebp - 0x1dc], ecx
mov edx, dword [ebp - 0x1c4]
mov dword [ebp - 0x1ce], edx
mov ax, word [ebp - 0x14]
mov word [ebp - 0x1d8], ax
mov ecx, dword [ebp - 0x1c4]
push ecx
push 0
call fcn.0040113b
lea edx, [ebp - 0x1e8]
push edx
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
mov dword [ebp - 0x1c0], eax
cmp dword [ebp - 0x1c0], 0
je 0x403877
push 0
push 0xfffffffffffffff9
call fcn.0040113b
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
jmp case.0x401cc4.66
cmp dword [ebp - 0x1c], 0xbadf00d
je 0x4038a3
push 0x200010
push 0xffffffffffffffe8
push 0
call fcn.0040103c
push eax
call fcn.004010e6
mov eax, 0x7fffffff
jmp 0x404af8
mov ecx, dword [0x4a0cd4]
add ecx, 1
mov dword [0x4a0cd4], ecx
jmp case.0x401cc4.66
mov dword [ebp - 0x1f0], 0
mov dword [ebp - 0x1f4], 0
mov dword [ebp - 0x1f8], 0
push str._RM_
mov edx, dword [ebp - 0x3c]
push edx
call fcn.00401087
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.00401087
cmp dword [ebp - 0x1c], 0
je 0x403903
push 0
call fcn.00404c80
mov dword [ebp - 0x1f0], eax
cmp dword [ebp - 0x18], 0
je 0x403916
push 0x11
call fcn.00404c80
mov dword [ebp - 0x1f4], eax
cmp dword [ebp - 0xc], 0
je 0x403929
push 0x22
call fcn.00404c80
mov dword [ebp - 0x1f8], eax
push 0xffffffffffffffcd
call fcn.00404c80
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x34]
push edx
mov eax, dword [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x3c]
push ecx
mov edx, dword [ebp - 0x38]
push edx
push str.WriteINIStr:_wrote___s___s_s_in__s
call fcn.00401163
add esp, 0x14
mov eax, dword [ebp - 0x34]
push eax
mov ecx, dword [ebp - 0x1f8]
push ecx
mov edx, dword [ebp - 0x1f4]
push edx
mov eax, dword [ebp - 0x1f0]
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
test eax, eax
jne 0x40397c
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
jmp case.0x401cc4.66
mov edx, dword [0x4159a0]
mov dword [ebp - 0x20c], edx
mov eax, dword [0x4159a4]
mov dword [ebp - 0x208], eax
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x1fc], ecx
push 1
call fcn.00404c80
mov dword [ebp - 0x204], eax
push 0x12
call fcn.00404c80
mov dword [ebp - 0x210], eax
push 0xffffffffffffffdd
call fcn.00404c80
mov dword [ebp - 0x200], eax
mov edx, dword [ebp - 0x200]
push edx
push 0x1fff
mov eax, dword [ebp - 0x1fc]
push eax
lea ecx, [ebp - 0x20c]
push ecx
mov edx, dword [ebp - 0x210]
push edx
mov eax, dword [ebp - 0x204]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0x20c]
push ecx
mov edx, dword [ebp - 0x1fc]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x403a22
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
xor ecx, ecx
mov edx, dword [ebp - 0x1fc]
mov word [edx], cx
jmp case.0x401cc4.66
mov dword [ebp - 0x214], 1
mov eax, dword [ebp - 0x18]
push eax
call fcn.00401104
add esp, 4
mov dword [ebp - 0x218], eax
cmp dword [ebp - 0xc], 0
jne 0x403ab4
push 2
call fcn.00404e20
mov dword [ebp - 0x21c], eax
cmp dword [ebp - 0x21c], 0
je 0x403ab2
push 0x33
call fcn.00404c80
mov dword [ebp - 0x220], eax
mov ecx, dword [ebp - 0x220]
push ecx
mov edx, dword [ebp - 0x21c]
push edx
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov dword [ebp - 0x214], eax
mov eax, dword [ebp - 0x220]
push eax
mov ecx, dword [ebp - 0x2c]
push ecx
mov edx, dword [ebp - 0x218]
push edx
push str.DeleteRegValue:___s_s____s_
call fcn.00401163
add esp, 0x10
mov eax, dword [ebp - 0x21c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x403aff
push 0x22
call fcn.00404c80
mov dword [ebp - 0x224], eax
mov ecx, dword [ebp - 0x224]
push ecx
mov edx, dword [ebp - 0x218]
push edx
push str.DeleteRegKey:___s_s_
call fcn.00401163
add esp, 0xc
mov eax, dword [ebp - 0xc]
and eax, 2
push eax
mov ecx, dword [ebp - 0x224]
push ecx
mov edx, dword [ebp - 0x18]
push edx
call fcn.00404e00
push eax
call fcn.00404cf0
mov dword [ebp - 0x214], eax
cmp dword [ebp - 0x214], 0
je 0x403b11
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
jmp case.0x401cc4.66
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.00404e00
mov dword [ebp - 0x234], eax
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x22c], edx
mov eax, dword [ebp - 8]
mov dword [ebp - 0x238], eax
push 2
call fcn.00404c80
mov dword [ebp - 0x23c], eax
push 0x11
call fcn.00404c80
mov dword [ebp - 0x240], eax
mov ecx, dword [ebp - 0x234]
push ecx
call fcn.00401104
add esp, 4
mov dword [ebp - 0x230], eax
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
push 0
lea eax, [ebp - 0x228]
push eax
push 0
mov ecx, dword [0x4a0cf0]
or ecx, 2
push ecx
push 0
push 0
push 0
mov edx, dword [ebp - 0x240]
push edx
mov eax, dword [ebp - 0x234]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x403d6e
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x248], ecx
mov dword [ebp - 0x244], 0
cmp dword [ebp - 0x22c], 1
jne 0x403c3c
push 0x23
call fcn.00404c80
mov edx, dword [ebp - 0x248]
push edx
call fcn.00401096
lea eax, [eax + eax + 2]
mov dword [ebp - 0x244], eax
cmp dword [ebp - 0x238], 1
jne 0x403c13
mov ecx, dword [ebp - 0x248]
push ecx
mov edx, dword [ebp - 0x23c]
push edx
mov eax, dword [ebp - 0x240]
push eax
mov ecx, dword [ebp - 0x230]
push ecx
push str.WriteRegStr:___s_s____s___s_
call fcn.00401163
add esp, 0x14
jmp 0x403c3c
mov edx, dword [ebp - 0x248]
push edx
mov eax, dword [ebp - 0x23c]
push eax
mov ecx, dword [ebp - 0x240]
push ecx
mov edx, dword [ebp - 0x230]
push edx
push str.WriteRegExpandStr:___s_s____s___s_
call fcn.00401163
add esp, 0x14
cmp dword [ebp - 0x22c], 4
jne 0x403c89
push 3
call fcn.00404c50
mov ecx, dword [ebp - 0x248]
mov dword [ecx], eax
mov dword [ebp - 0x244], 4
mov edx, dword [ebp - 0x248]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0x23c]
push ecx
mov edx, dword [ebp - 0x240]
push edx
mov eax, dword [ebp - 0x230]
push eax
push str.WriteRegDWORD:___s_s____s__0x_08x_
call fcn.00401163
add esp, 0x14
cmp dword [ebp - 0x22c], 3
jne 0x403cfa
push 0xc000
mov ecx, dword [ebp - 0x248]
push ecx
push 0
mov edx, dword [ebp - 0x10]
push edx
call fcn.00401091
mov dword [ebp - 0x244], eax
mov eax, dword [ebp - 0x244]
push eax
mov ecx, dword [ebp - 0x248]
push ecx
push 0x100
lea edx, [ebp - 0x348]
push edx
call fcn.004010d2
add esp, 0x10
lea eax, [ebp - 0x348]
push eax
mov ecx, dword [ebp - 0x23c]
push ecx
mov edx, dword [ebp - 0x240]
push edx
mov eax, dword [ebp - 0x230]
push eax
push str.WriteRegBin:___s_s____s___s_
call fcn.00401163
add esp, 0x14
cmp dword [ebp - 0x244], 0
jb 0x403d3d
mov ecx, dword [ebp - 0x244]
push ecx
mov edx, dword [ebp - 0x248]
push edx
mov eax, dword [ebp - 0x238]
push eax
push 0
mov ecx, dword [ebp - 0x23c]
push ecx
mov edx, dword [ebp - 0x228]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
jne 0x403d3d
mov eax, dword [ebp - 0x24]
sub eax, 1
mov dword [ebp - 0x24], eax
jmp 0x403d5f
mov ecx, dword [ebp - 0x23c]
push ecx
mov edx, dword [ebp - 0x240]
push edx
mov eax, dword [ebp - 0x230]
push eax
push str.WriteReg:_error_writing_into___s_s____s_
call fcn.00401163
add esp, 0x10
mov ecx, dword [ebp - 0x228]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x403d89
mov edx, dword [ebp - 0x240]
push edx
mov eax, dword [ebp - 0x230]
push eax
push str.WriteReg:_error_creating_key___s_s_
call fcn.00401163
add esp, 0xc
jmp case.0x401cc4.66
push 0x20019
call fcn.00404e20
mov dword [ebp - 0x350], eax
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x34c], ecx
push 0x33
call fcn.00404c80
mov dword [ebp - 0x354], eax
xor edx, edx
mov eax, dword [ebp - 0x34c]
mov word [eax], dx
cmp dword [ebp - 0x350], 0
je 0x403e8f
mov dword [ebp - 0x358], 0x4000
lea ecx, [ebp - 0x358]
push ecx
mov edx, dword [ebp - 0x34c]
push edx
lea eax, [ebp - 0x35c]
push eax
push 0
mov ecx, dword [ebp - 0x354]
push ecx
mov edx, dword [ebp - 0x350]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x403e20
cmp dword [ebp - 0x35c], 4
je 0x403e36
cmp dword [ebp - 0x35c], 1
je 0x403e36
cmp dword [ebp - 0x35c], 2
je 0x403e36
xor eax, eax
mov ecx, dword [ebp - 0x34c]
mov word [ecx], ax
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
jmp 0x403e80
cmp dword [ebp - 0x35c], 4
jne 0x403e65
xor eax, eax
cmp dword [ebp - 0xc], 0
sete al
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x34c]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0x34c]
push eax
call fcn.00401046
jmp 0x403e80
mov ecx, dword [ebp - 0x24]
add ecx, dword [ebp - 0xc]
mov dword [ebp - 0x24], ecx
xor edx, edx
mov eax, dword [ebp - 0x358]
mov ecx, dword [ebp - 0x34c]
mov word [ecx + eax*2], dx
mov edx, dword [ebp - 0x350]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x403e98
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
jmp case.0x401cc4.66
push 0x20019
call fcn.00404e20
mov dword [ebp - 0x364], eax
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x360], ecx
push 3
call fcn.00404c50
mov dword [ebp - 0x368], eax
xor edx, edx
mov eax, dword [ebp - 0x360]
mov word [eax], dx
cmp dword [ebp - 0x364], 0
je 0x403f69
mov dword [ebp - 0x36c], 0x1fff
cmp dword [ebp - 0xc], 0
je 0x403f0f
mov ecx, dword [ebp - 0x36c]
push ecx
mov edx, dword [ebp - 0x360]
push edx
mov eax, dword [ebp - 0x368]
push eax
mov ecx, dword [ebp - 0x364]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
jmp 0x403f4b
push 0
push 0
push 0
push 0
lea edx, [ebp - 0x36c]
push edx
mov eax, dword [ebp - 0x360]
push eax
mov ecx, dword [ebp - 0x368]
push ecx
mov edx, dword [ebp - 0x364]
push edx
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
je 0x403f4b
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
jmp case.0x401cc4.66
xor ecx, ecx
mov edx, dword [ebp - 0x360]
mov word [edx + 0x3ffe], cx
mov eax, dword [ebp - 0x364]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x403f72
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
jmp case.0x401cc4.66
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x370], edx
mov eax, dword [ebp - 0x370]
movzx ecx, word [eax]
test ecx, ecx
je 0x403fa0
mov edx, dword [ebp - 0x370]
push edx
call fcn.0040104b
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp case.0x401cc4.66
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x378], eax
push 0xffffffffffffffed
call fcn.00404c80
mov dword [ebp - 0x37c], eax
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp - 0x37c]
push eax
call fcn.00401032
mov dword [ebp - 0x374], eax
cmp dword [ebp - 0x374], 0xffffffff
jne 0x403ff4
xor ecx, ecx
mov edx, dword [ebp - 0x378]
mov word [edx], cx
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
jmp 0x404007
mov ecx, dword [ebp - 0x374]
push ecx
mov edx, dword [ebp - 0x378]
push edx
call fcn.00401046
jmp case.0x401cc4.66
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x38c], eax
push 0x2000
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x380], eax
cmp dword [ebp - 0x14], 0
je 0x40404e
push 1
call fcn.00404c50
and eax, 0xff
mov ecx, dword [ebp - 0x380]
mov byte [ecx], al
mov dword [ebp - 0x388], 1
jmp 0x404088
push 0x11
call fcn.00404c80
push 0
push 0
push 0x2000
mov edx, dword [ebp - 0x380]
push edx
push 0xffffffffffffffff
mov eax, dword [ebp - 0x3c]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ecx, dword [ebp - 0x380]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 0x388], eax
mov edx, dword [ebp - 0x38c]
movzx eax, word [edx]
test eax, eax
je 0x4040c3
push 0
lea ecx, [ebp - 0x384]
push ecx
mov edx, dword [ebp - 0x388]
push edx
mov eax, dword [ebp - 0x380]
push eax
mov ecx, dword [ebp - 0x38c]
push ecx
call fcn.0040104b
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x4040cc
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x380]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp case.0x401cc4.66
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x390], ecx
mov dword [ebp - 0x3a0], 0
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x39c], edx
push 2
call fcn.00404c50
mov dword [ebp - 0x398], eax
cmp dword [ebp - 0x398], 1
jge 0x404115
jmp case.0x401cc4.66
cmp dword [ebp - 0x398], 0x1fff
jle 0x40412b
mov dword [ebp - 0x398], 0x1fff
mov eax, dword [ebp - 0x39c]
movzx ecx, word [eax]
test ecx, ecx
je 0x404298
mov byte [ebp - 0x3a5], 0
mov edx, dword [ebp - 0x39c]
push edx
call fcn.0040104b
mov dword [ebp - 0x3a4], eax
mov eax, dword [ebp - 0x3a0]
cmp eax, dword [ebp - 0x398]
jge 0x404298
push 0
lea ecx, [ebp - 0x394]
push ecx
push 1
lea edx, [ebp - 0x3ad]
push edx
mov eax, dword [ebp - 0x3a4]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x404193
cmp dword [ebp - 0x394], 1
je 0x404198
jmp 0x404298
cmp dword [ebp - 0x10], 0
je 0x4041b9
movzx ecx, byte [ebp - 0x3ad]
push ecx
mov edx, dword [ebp - 0x390]
push edx
call fcn.00401046
xor eax, eax
jmp 0x404af8
push 2
lea eax, [ebp - 0x3ac]
push eax
push 1
lea ecx, [ebp - 0x3ad]
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsx edx, byte [ebp - 0x3a5]
cmp edx, 0xd
je 0x4041ed
movsx eax, byte [ebp - 0x3a5]
cmp eax, 0xa
jne 0x404254
movsx ecx, byte [ebp - 0x3a5]
movsx edx, byte [ebp - 0x3ad]
cmp ecx, edx
je 0x404217
movsx eax, byte [ebp - 0x3ad]
cmp eax, 0xd
je 0x40422c
movsx ecx, byte [ebp - 0x3ad]
cmp ecx, 0xa
je 0x40422c
push 1
push 0
push 0xffffffffffffffff
mov edx, dword [ebp - 0x3a4]
push edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
jmp 0x404252
mov eax, dword [ebp - 0x3a0]
mov ecx, dword [ebp - 0x390]
mov dx, word [ebp - 0x3ac]
mov word [ecx + eax*2], dx
mov eax, dword [ebp - 0x3a0]
add eax, 1
mov dword [ebp - 0x3a0], eax
jmp 0x404298
mov ecx, dword [ebp - 0x3a0]
mov edx, dword [ebp - 0x390]
mov ax, word [ebp - 0x3ac]
mov word [edx + ecx*2], ax
mov ecx, dword [ebp - 0x3a0]
add ecx, 1
mov dword [ebp - 0x3a0], ecx
mov dl, byte [ebp - 0x3ad]
mov byte [ebp - 0x3a5], dl
movsx eax, byte [ebp - 0x3ad]
test eax, eax
jne 0x404293
jmp 0x404298
jmp 0x404155
xor ecx, ecx
mov edx, dword [ebp - 0x3a0]
mov eax, dword [ebp - 0x390]
mov word [eax + edx*2], cx
cmp dword [ebp - 0x3a0], 0
jne 0x4042bc
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
jmp case.0x401cc4.66
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x3bc], edx
cmp dword [ebp - 0x14], 0
je 0x4042ee
push 1
call fcn.00404c50
and eax, 0xffff
mov ecx, dword [ebp - 0x3c]
mov word [ecx], ax
mov dword [ebp - 0x3b8], 1
jmp 0x404301
push 0x11
call fcn.00404c80
push eax
call fcn.00401096
mov dword [ebp - 0x3b8], eax
mov edx, dword [ebp - 0x3bc]
movzx eax, word [edx]
test eax, eax
je 0x40433b
push 0
lea ecx, [ebp - 0x3b4]
push ecx
mov edx, dword [ebp - 0x3b8]
shl edx, 1
push edx
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 0x3bc]
push ecx
call fcn.0040104b
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x404344
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
jmp case.0x401cc4.66
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x3c0], eax
mov dword [ebp - 0x3d0], 0
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x3cc], ecx
push 2
call fcn.00404c50
mov dword [ebp - 0x3c8], eax
cmp dword [ebp - 0x3c8], 1
jge 0x404380
jmp case.0x401cc4.66
cmp dword [ebp - 0x3c8], 0x1fff
jle 0x404396
mov dword [ebp - 0x3c8], 0x1fff
mov edx, dword [ebp - 0x3cc]
movzx eax, word [edx]
test eax, eax
je 0x4044eb
xor ecx, ecx
mov word [ebp - 0x3d8], cx
mov edx, dword [ebp - 0x3cc]
push edx
call fcn.0040104b
mov dword [ebp - 0x3d4], eax
mov eax, dword [ebp - 0x3d0]
cmp eax, dword [ebp - 0x3c8]
jge 0x4044eb
push 0
lea ecx, [ebp - 0x3c4]
push ecx
push 2
lea edx, [ebp - 0x3dc]
push edx
mov eax, dword [ebp - 0x3d4]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x404400
cmp dword [ebp - 0x3c4], 2
je 0x404405
jmp 0x4044eb
cmp dword [ebp - 0x10], 0
je 0x404426
movzx ecx, word [ebp - 0x3dc]
push ecx
mov edx, dword [ebp - 0x3c0]
push edx
call fcn.00401046
xor eax, eax
jmp 0x404af8
movzx eax, word [ebp - 0x3d8]
cmp eax, 0xd
je 0x40443e
movzx ecx, word [ebp - 0x3d8]
cmp ecx, 0xa
jne 0x4044a5
movzx edx, word [ebp - 0x3d8]
movzx eax, word [ebp - 0x3dc]
cmp edx, eax
je 0x404468
movzx ecx, word [ebp - 0x3dc]
cmp ecx, 0xd
je 0x40447d
movzx edx, word [ebp - 0x3dc]
cmp edx, 0xa
je 0x40447d
push 1
push 0
push 0xfffffffffffffffe
mov eax, dword [ebp - 0x3d4]
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
jmp 0x4044a3
mov ecx, dword [ebp - 0x3d0]
mov edx, dword [ebp - 0x3c0]
mov ax, word [ebp - 0x3dc]
mov word [edx + ecx*2], ax
mov ecx, dword [ebp - 0x3d0]
add ecx, 1
mov dword [ebp - 0x3d0], ecx
jmp 0x4044eb
mov edx, dword [ebp - 0x3d0]
mov eax, dword [ebp - 0x3c0]
mov cx, word [ebp - 0x3dc]
mov word [eax + edx*2], cx
mov edx, dword [ebp - 0x3d0]
add edx, 1
mov dword [ebp - 0x3d0], edx
mov ax, word [ebp - 0x3dc]
mov word [ebp - 0x3d8], ax
movzx ecx, word [ebp - 0x3dc]
test ecx, ecx
jne 0x4044e6
jmp 0x4044eb
jmp 0x4043c2
xor edx, edx
mov eax, dword [ebp - 0x3d0]
mov ecx, dword [ebp - 0x3c0]
mov word [ecx + eax*2], dx
cmp dword [ebp - 0x3d0], 0
jne 0x40450f
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
jmp case.0x401cc4.66
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x3e0], eax
mov ecx, dword [ebp - 0x3e0]
movzx edx, word [ecx]
test edx, edx
je 0x404567
mov eax, dword [ebp - 0x10]
push eax
push 0
push 2
call fcn.00404c50
push eax
mov ecx, dword [ebp - 0x3e0]
push ecx
call fcn.0040104b
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [ebp - 0x3e4], eax
cmp dword [ebp - 0x18], 0
jl 0x404567
mov edx, dword [ebp - 0x3e4]
push edx
mov eax, dword [ebp - 0x30]
push eax
call fcn.00401046
jmp case.0x401cc4.66
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x3e8], ecx
mov edx, dword [ebp - 0x3e8]
movzx eax, word [edx]
test eax, eax
je 0x404595
mov ecx, dword [ebp - 0x3e8]
push ecx
call fcn.0040104b
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp case.0x401cc4.66
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x3ec], edx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x3f0], eax
mov ecx, dword [ebp - 0x3f0]
movzx edx, word [ecx]
test edx, edx
je 0x4045ec
lea eax, [ebp - 0x640]
push eax
mov ecx, dword [ebp - 0x3f0]
push ecx
call fcn.0040104b
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x4045ec
lea edx, [ebp - 0x614]
push edx
mov eax, dword [ebp - 0x3ec]
push eax
call fcn.00401087
jmp 0x404600
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
xor edx, edx
mov eax, dword [ebp - 0x3ec]
mov word [eax], dx
jmp case.0x401cc4.66
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x648], ecx
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x64c], edx
push 2
call fcn.00404c80
mov dword [ebp - 0x650], eax
lea eax, [ebp - 0x8a0]
push eax
mov ecx, dword [ebp - 0x650]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x644], eax
cmp dword [ebp - 0x644], 0xffffffff
jne 0x404668
xor edx, edx
mov eax, dword [ebp - 0x64c]
mov word [eax], dx
xor ecx, ecx
mov edx, dword [ebp - 0x648]
mov word [edx], cx
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
jmp 0x40468e
mov ecx, dword [ebp - 0x644]
push ecx
mov edx, dword [ebp - 0x64c]
push edx
call fcn.00401046
lea eax, [ebp - 0x874]
push eax
mov ecx, dword [ebp - 0x648]
push ecx
call fcn.00401087
jmp case.0x401cc4.66
mov dword [ebp - 0x8a8], 0xfffffd66
push 0xfffffffffffffff0
call fcn.00404c80
mov dword [ebp - 0x8ac], eax
mov edx, dword [ebp - 0x8ac]
push edx
call fcn.0040107d
test eax, eax
jne 0x4046c1
push 0xffffffffffffffed
call fcn.00404c80
mov eax, dword [ebp - 0x8ac]
push eax
call fcn.004010f0
push 2
push 0x40000000
mov ecx, dword [ebp - 0x8ac]
push ecx
call fcn.00401032
mov dword [ebp - 0x8a4], eax
cmp dword [ebp - 0x8a4], 0xffffffff
je 0x404846
mov edx, dword [0x4a0c4c]
mov dword [ebp - 0x8b0], edx
mov eax, dword [ebp - 0x8b0]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x8b4], eax
cmp dword [ebp - 0x8b4], 0
je 0x404839
push 0
call fcn.00401023
mov ecx, dword [ebp - 0x8b0]
push ecx
mov edx, dword [ebp - 0x8b4]
push edx
call fcn.00401041
mov eax, dword [ebp - 0x14]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x8bc], eax
mov ecx, dword [ebp - 0x8bc]
mov dword [ebp - 0x8c0], ecx
cmp dword [ebp - 0x8c0], 0
je 0x4047f0
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 0x8c0]
push eax
push 0
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.00401091
mov edx, dword [ebp - 0x8bc]
movzx eax, byte [edx]
test eax, eax
je 0x4047e3
mov ecx, dword [ebp - 0x8bc]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x8c8], edx
mov dword [ebp - 0x8c4], eax
mov ecx, dword [ebp - 0x8bc]
add ecx, 8
mov dword [ebp - 0x8bc], ecx
mov edx, dword [ebp - 0x8c8]
push edx
mov eax, dword [ebp - 0x8bc]
push eax
mov ecx, dword [ebp - 0x8b4]
add ecx, dword [ebp - 0x8c4]
push ecx
call fcn.00401109
mov edx, dword [ebp - 0x8bc]
add edx, dword [ebp - 0x8c8]
mov dword [ebp - 0x8bc], edx
jmp 0x40477c
mov eax, dword [ebp - 0x8c0]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push 0
lea ecx, [ebp - 0x8b8]
push ecx
mov edx, dword [ebp - 0x8b0]
push edx
mov eax, dword [ebp - 0x8b4]
push eax
mov ecx, dword [ebp - 0x8a4]
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov edx, dword [ebp - 0x8b4]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push 0
push 0
mov eax, dword [ebp - 0x8a4]
push eax
push 0xffffffffffffffff
call fcn.00401091
mov dword [ebp - 0x8a8], eax
mov ecx, dword [ebp - 0x8a4]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x8ac]
push edx
mov eax, dword [ebp - 0x8a8]
push eax
push str.created_uninstaller:__d____s_
call fcn.00401163
add esp, 0xc
mov dword [ebp - 0x8cc], 0xfffffff3
cmp dword [ebp - 0x8a8], 0
jge 0x404894
mov dword [ebp - 0x8cc], 0xffffffef
mov ecx, dword [ebp - 0x8ac]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x8cc]
push eax
call fcn.0040106e
jmp case.0x401cc4.66
cmp dword [ebp - 0x1c], 0
je 0x4048ec
mov ecx, dword [ebp - 0x18]
push ecx
push str.settings_logging_to__d
call fcn.00401163
add esp, 8
mov edx, dword [ebp - 0x18]
mov dword [0x48bb2c], edx
mov eax, dword [ebp - 0x18]
push eax
push str.logging_set_to__d
call fcn.00401163
add esp, 8
cmp dword [ebp - 0x18], 0
je 0x4048e3
call fcn.00401118
jmp 0x4048ea
push 1
call fcn.0040112c
jmp 0x40490d
push 1
call fcn.00404c80
mov dword [ebp - 0x8d0], eax
mov ecx, dword [ebp - 0x8d0]
push ecx
push 0x415c64
call fcn.00401163
add esp, 8
jmp case.0x401cc4.66
push 0
call fcn.00404c50
mov dword [ebp - 0x8d4], eax
mov edx, dword [ebp - 0x8d4]
cmp edx, dword [0x4a0c0c]
jae 0x4049f4
mov eax, dword [ebp - 0x8d4]
imul eax, eax, 0x4018
add eax, dword [0x4a0c08]
mov dword [ebp - 0x8d8], eax
cmp dword [ebp - 0x14], 0
jl 0x40498e
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x8d8]
mov eax, dword [edx + ecx*4]
mov dword [ebp - 0x8dc], eax
cmp dword [ebp - 0x14], 0
jne 0x40497c
mov ecx, dword [ebp - 0x8d8]
add ecx, 0x18
push ecx
mov edx, dword [ebp - 0x30]
push edx
call fcn.00401087
jmp 0x40498c
mov eax, dword [ebp - 0x8dc]
push eax
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.00401046
jmp 0x4049f2
mov edx, dword [ebp - 0x14]
neg edx
sub edx, 1
mov dword [ebp - 0x14], edx
je 0x4049a7
push 1
call fcn.00404c50
mov dword [ebp - 0x18], eax
jmp 0x4049d1
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp - 0x8d8]
add ecx, 0x18
push ecx
call fcn.0040103c
mov edx, dword [ebp - 0x8d8]
mov eax, dword [edx + 8]
or eax, 0x100
mov ecx, dword [ebp - 0x8d8]
mov dword [ecx + 8], eax
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x8d8]
mov ecx, dword [ebp - 0x18]
mov dword [eax + edx*4], ecx
cmp dword [ebp - 0x10], 0
je 0x4049f2
mov edx, dword [ebp - 0x8d4]
push edx
call fcn.00401050
jmp 0x4049fd
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
jmp case.0x401cc4.66
push 0
call fcn.00404c50
mov dword [ebp - 0x8e0], eax
cmp dword [ebp - 0x8e0], 0x20
jae 0x404a8b
cmp dword [ebp - 0x10], 0
je 0x404a4e
cmp dword [ebp - 0x14], 0
je 0x404a3b
mov ecx, dword [ebp - 0x8e0]
push ecx
call fcn.00401014
push 0
push 0
call fcn.004010af
jmp 0x404a4c
push 0
call fcn.00401113
push eax
mov edx, dword [ebp - 0x30]
push edx
call fcn.00401046
jmp 0x404a89
cmp dword [ebp - 0x14], 0
je 0x404a6c
mov eax, dword [ebp - 0x8e0]
mov ecx, dword [0x4a0bd0]
mov edx, dword [ebp - 0x18]
mov dword [ecx + eax*4 + 0x94], edx
jmp 0x404a89
mov eax, dword [ebp - 0x8e0]
mov ecx, dword [0x4a0bd0]
mov edx, dword [ecx + eax*4 + 0x94]
push edx
mov eax, dword [ebp - 0x30]
push eax
call fcn.0040103c
jmp 0x404a94
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
jmp case.0x401cc4.66
push 0
mov edx, dword [ebp - 0x1c]
and edx, dword [0x477c84]
push edx
push 0xb
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [ebp - 0x1c], 0
je 0x404ac2
push 0
push 0
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp case.0x401cc4.66
push 1
call fcn.00404c80
mov dword [ebp - 0x8e4], eax
mov edx, dword [ebp - 0x8e4]
push edx
call fcn.0040102d
push eax
mov eax, dword [ebp - 0x28]
push eax
call fcn.00401046
mov ecx, dword [0x4a0cc8]
add ecx, dword [ebp - 0x24]
mov dword [0x4a0cc8], ecx
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4