Function at 0x42d080
Capabilities:
Accept command line arguments
Create directory
Create process on windows
Get common file path
Hide graphical window
Log keystrokes
Read .ini file
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4318fd
mov eax, dword fs:[0]
push eax
sub esp, 0x59c
mov eax, dword [0x441cc0]
xor eax, ebp
mov dword [ebp - 0x84], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x59c], ecx
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x40], 0
push 0
call fcn.0042a500
add esp, 4
test eax, eax
je 0x42d1a3
call fcn.0042aa70
test eax, eax
jne 0x42d1a3
mov ecx, dword [ebp - 0x59c]
call fcn.0042c9f0
test eax, eax
jne 0x42d1a3
call fcn.0042a740
test eax, eax
jne 0x42d190
mov dword [ebp - 0x7c], 0
push 0x38
push 0
lea eax, [ebp - 0x78]
push eax
call fcn.00413d10
add esp, 0xc
mov dword [ebp - 0x7c], 0x3c
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x78], 0x100
mov dword [ebp - 0x70], str.runas
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x60], 1
lea ecx, [ebp - 0x80]
push ecx
call fcn.0042b300
add esp, 4
lea ecx, [ebp - 0x80]
call fcn.00402600
mov dword [ebp - 0x6c], eax
lea edx, [ebp - 0x7c]
push edx
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
je 0x42d186
mov dword [ebp - 0x574], 0
lea ecx, [ebp - 0x80]
call fcn.00402b70
mov eax, dword [ebp - 0x574]
jmp 0x42e2d2
lea ecx, [ebp - 0x80]
call fcn.00402b70
jmp 0x42d1a3
push 0x43
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
jne 0x42d1a3
mov dword [ebp - 0x40], 1
lea ecx, [ebp - 0x38]
call fcn.0042e410
mov dword [ebp - 4], 0
push 1
push 0x80000001
lea ecx, [ebp - 0x38]
call fcn.0042e340
test eax, eax
je 0x42d2b6
push 1
push 1
push 0x438054
lea ecx, [ebp - 0x38]
call fcn.0042f7c0
test eax, eax
je 0x42d2b6
lea eax, [ebp - 0x294]
push eax
call fcn.0042b300
add esp, 4
mov byte [ebp - 4], 1
push 1
lea ecx, [ebp - 0x294]
call fcn.00402600
push eax
push str.ImagePath
lea ecx, [ebp - 0x38]
call fcn.0042e580
xor ecx, ecx
mov word [ebp - 0x28c], cx
push 0x206
push 0
lea edx, [ebp - 0x28a]
push edx
call fcn.00413d10
add esp, 0xc
lea eax, [ebp - 0x28c]
push eax
push 1
push 0
push 0
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov dword [ebp - 0x290], eax
cmp dword [ebp - 0x290], 0
jl 0x42d2a7
lea ecx, [ebp - 0x298]
call fcn.00402b50
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x28c]
push ecx
push str._sSOS.exe
lea edx, [ebp - 0x298]
push edx
call fcn.004021a0
add esp, 0xc
push 1
lea ecx, [ebp - 0x298]
call fcn.00402600
push eax
push str.DesktopPath
lea ecx, [ebp - 0x38]
call fcn.0042e580
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x298]
call fcn.00402b70
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x294]
call fcn.00402b70
cmp dword [0x445170], 1
jle 0x42d615
lea ecx, [ebp - 0x29c]
call fcn.00402b50
mov byte [ebp - 4], 3
mov dword [ebp - 0x2a0], 0
jmp 0x42d2ed
mov eax, dword [ebp - 0x2a0]
add eax, 1
mov dword [ebp - 0x2a0], eax
mov ecx, dword [ebp - 0x2a0]
cmp ecx, dword [0x445170]
jge 0x42d606
mov edx, dword [ebp - 0x2a0]
mov eax, dword [0x445178]
mov ecx, dword [eax + edx*4]
push ecx
lea ecx, [ebp - 0x29c]
call fcn.00402a10
push 0x2f
lea ecx, [ebp - 0x29c]
call fcn.00403590
push 0x2d
lea ecx, [ebp - 0x29c]
call fcn.00403590
push 0x4380c8
lea ecx, [ebp - 0x29c]
call fcn.00401090
test eax, eax
jne 0x42d601
cmp dword [ebp - 0x40], 0
je 0x42d35d
mov dword [ebp - 0x3c], 1
jmp 0x42d601
call fcn.0042aa70
test eax, eax
je 0x42d36b
jmp 0x42d601
lea ecx, [ebp - 0x2b8]
call fcn.00402b50
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2ac]
call fcn.00402b50
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2b0]
call fcn.00402b50
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x2a4]
call fcn.00402b50
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x2b4]
call fcn.00402b50
mov byte [ebp - 4], 8
push 0x8c
lea ecx, [ebp - 0x2b4]
call fcn.004024f0
push 0x89
lea ecx, [ebp - 0x2ac]
call fcn.004024f0
push 0x8a
lea ecx, [ebp - 0x2b0]
call fcn.004024f0
push 0x8b
lea ecx, [ebp - 0x2a4]
call fcn.004024f0
mov edx, dword [ebp - 0x2a4]
push edx
mov eax, dword [ebp - 0x2b0]
push eax
mov ecx, dword [ebp - 0x2ac]
push ecx
push 0x4380cc
lea edx, [ebp - 0x2b8]
push edx
call fcn.004021a0
add esp, 0x14
push 0x51031
lea ecx, [ebp - 0x2b4]
call fcn.00402600
push eax
lea ecx, [ebp - 0x2b8]
call fcn.00402600
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov dword [ebp - 0x2a8], eax
mov eax, dword [ebp - 0x2a8]
mov dword [ebp - 0x5a0], eax
cmp dword [ebp - 0x5a0], 1
je 0x42d464
jmp 0x42d569
mov dword [ebp - 0x2c8], 0
xor ecx, ecx
mov dword [ebp - 0x2c4], ecx
mov dword [ebp - 0x2c0], ecx
mov dword [ebp - 0x2bc], ecx
lea edx, [ebp - 0x2d0]
push edx
call fcn.0042b300
add esp, 4
mov byte [ebp - 4], 9
lea eax, [ebp - 0x2d0]
push eax
lea ecx, [ebp - 0x2d4]
call fcn.00402d90
mov byte [ebp - 4], 0xa
push 1
lea ecx, [ebp - 0x2d4]
push ecx
call fcn.0042ab30
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
mov edx, dword [ebp - 0x2d0]
push edx
push str._s__s
lea eax, [ebp - 0x2d0]
push eax
call fcn.004021a0
add esp, 0x10
push 1
push 1
push 0
lea ecx, [ebp - 0x2d4]
call fcn.00402600
push eax
push 0
lea ecx, [ebp - 0x2c8]
push ecx
lea ecx, [ebp - 0x2d0]
call fcn.00402600
push eax
call fcn.0042b940
add esp, 0x1c
mov dword [ebp - 0x2cc], eax
cmp dword [ebp - 0x2cc], 0
jne 0x42d537
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x4380ec
push str.__s__SOS_ElevationLimited_reopen_failed__d
call fcn.0042b430
add esp, 0xc
jmp 0x42d549
push 0x438180
push str.__s__SOS_ElevationLimited_reopen
call fcn.0042b430
add esp, 8
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x2d4]
call fcn.00402b70
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x2d0]
call fcn.00402b70
jmp 0x42d57b
push 0x438204
push str.__s__SOS_ElevationLimited_cancel
call fcn.0042b430
add esp, 8
mov dword [ebp - 0x578], 0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x2b4]
call fcn.00402b70
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x2a4]
call fcn.00402b70
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2b0]
call fcn.00402b70
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2ac]
call fcn.00402b70
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2b8]
call fcn.00402b70
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x29c]
call fcn.00402b70
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38]
call fcn.0042e3e0
mov eax, dword [ebp - 0x578]
jmp 0x42e2d2
jmp 0x42d2de
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x29c]
call fcn.00402b70
mov eax, dword [ebp - 0x59c]
add eax, 0x20
push eax
call fcn.0042a400
add esp, 4
mov ecx, 0x445e5c
call fcn.00403440
test eax, eax
je 0x42da1d
push 0
push 0x438284
call dword [sym.imp.USER32.dll_FindWindowW]
mov dword [ebp - 0x2d8], eax
mov ecx, dword [ebp - 0x2d8]
push ecx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x42d73c
cmp dword [ebp - 0x3c], 0
jne 0x42d73c
push 1
mov edx, dword [ebp - 0x2d8]
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
push 1
mov eax, dword [ebp - 0x2d8]
push eax
call dword [sym.imp.USER32.dll_SwitchToThisWindow]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov dword [ebp - 0x2ec], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebp - 0x2dc], eax
push 0
mov ecx, dword [ebp - 0x2ec]
push ecx
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov dword [ebp - 0x2e0], eax
push 1
mov edx, dword [ebp - 0x2e0]
push edx
mov eax, dword [ebp - 0x2dc]
push eax
call dword [sym.imp.USER32.dll_AttachThreadInput]
mov dword [ebp - 0x2e4], eax
mov ecx, dword [ebp - 0x2d8]
push ecx
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov dword [ebp - 0x2f0], eax
push 0
mov edx, dword [ebp - 0x2e0]
push edx
mov eax, dword [ebp - 0x2dc]
push eax
call dword [sym.imp.USER32.dll_AttachThreadInput]
mov dword [ebp - 0x2e8], eax
push 0x4382c4
push str.__s__SOS_skip_by_foreground_instance
call fcn.0042b430
add esp, 8
mov dword [ebp - 0x57c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38]
call fcn.0042e3e0
mov eax, dword [ebp - 0x57c]
jmp 0x42e2d2
mov dword [ebp - 0x2f4], 0
push 0x1f4
call fcn.00429ec0
add esp, 4
mov ecx, dword [ebp - 0x2f4]
add ecx, 1
mov dword [ebp - 0x2f4], ecx
mov ecx, 0x445e5c
call fcn.00403480
mov ecx, 0x445e5c
call fcn.00403440
test eax, eax
je 0x42d783
cmp dword [ebp - 0x2f4], 0x1e
jl 0x42d746
mov ecx, 0x445e5c
call fcn.00403440
test eax, eax
je 0x42da18
mov dword [ebp - 0x2f8], 0xffffffff
lea edx, [ebp - 0x2f8]
push edx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
call dword [sym.imp.KERNEL32.dll_ProcessIdToSessionId]
lea ecx, [ebp - 0x310]
call fcn.00403ce0
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x2f8]
push eax
lea ecx, [ebp - 0x310]
push ecx
push str.SRServerSOS.exe
call fcn.0042b1b0
add esp, 0xc
lea ecx, [ebp - 0x310]
call fcn.00403d70
test eax, eax
jbe 0x42d83c
mov ecx, 0x445e5c
call fcn.00402600
push eax
push 0x43836c
push 0x4383a8
call fcn.0042b430
add esp, 0xc
mov dword [ebp - 0x580], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x310]
call fcn.00403d50
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38]
call fcn.0042e3e0
mov eax, dword [ebp - 0x580]
jmp 0x42e2d2
lea ecx, [ebp - 0x310]
call fcn.00403dc0
mov edx, dword [ebp - 0x2f8]
push edx
lea eax, [ebp - 0x310]
push eax
push 0x4383f8
call fcn.0042b1b0
add esp, 0xc
lea ecx, [ebp - 0x310]
call fcn.00403d70
test eax, eax
jne 0x42d8c1
mov ecx, 0x445e5c
call fcn.00402600
push eax
push 0x43841c
push str.__s__SOS_skip_by_lock_without_instance___d_
call fcn.0042b430
add esp, 0xc
mov dword [ebp - 0x584], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x310]
call fcn.00403d50
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38]
call fcn.0042e3e0
mov eax, dword [ebp - 0x584]
jmp 0x42e2d2
mov dword [ebp - 0x314], 0
jmp 0x42d8dc
mov ecx, dword [ebp - 0x314]
add ecx, 1
mov dword [ebp - 0x314], ecx
lea ecx, [ebp - 0x310]
call fcn.00403d70
cmp dword [ebp - 0x314], eax
jae 0x42d965
mov edx, dword [ebp - 0x314]
push edx
lea ecx, [ebp - 0x310]
call fcn.00403d90
mov eax, dword [eax]
push eax
push 0x4384b0
push str.__s__Close_SRM__d
call fcn.0042b430
add esp, 0xc
mov ecx, dword [ebp - 0x314]
push ecx
lea ecx, [ebp - 0x310]
call fcn.00403d90
mov edx, dword [eax]
push edx
push 1
push 1
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 0x318], eax
cmp dword [ebp - 0x318], 0
je 0x42d960
push 2
mov eax, dword [ebp - 0x318]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
mov ecx, dword [ebp - 0x318]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x42d8cd
push 0x438510
push str.__s__Wait_3sec_for_another_instance_cleanup
call fcn.0042b430
add esp, 8
push 0xbb8
call fcn.00429ec0
add esp, 4
lea ecx, [ebp - 0x310]
call fcn.00403dc0
mov edx, dword [ebp - 0x2f8]
push edx
lea eax, [ebp - 0x310]
push eax
push 0x4385a8
call fcn.0042b1b0
add esp, 0xc
lea ecx, [ebp - 0x310]
call fcn.00403d70
test eax, eax
jbe 0x42da09
mov ecx, 0x445e5c
call fcn.00402600
push eax
push 0x4385cc
push str.__s__SOS_skip_by_another_instance___d_
call fcn.0042b430
add esp, 0xc
mov dword [ebp - 0x588], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x310]
call fcn.00403d50
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38]
call fcn.0042e3e0
mov eax, dword [ebp - 0x588]
jmp 0x42e2d2
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x310]
call fcn.00403d50
jmp 0x42db11
push 0
push 0x438658
call dword [sym.imp.USER32.dll_FindWindowW]
mov dword [ebp - 0x31c], eax
mov ecx, dword [ebp - 0x31c]
push ecx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x42db11
push 1
mov edx, dword [ebp - 0x31c]
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
push 1
mov eax, dword [ebp - 0x31c]
push eax
call dword [sym.imp.USER32.dll_SwitchToThisWindow]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov dword [ebp - 0x330], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebp - 0x320], eax
push 0
mov ecx, dword [ebp - 0x330]
push ecx
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov dword [ebp - 0x324], eax
push 1
mov edx, dword [ebp - 0x324]
push edx
mov eax, dword [ebp - 0x320]
push eax
call dword [sym.imp.USER32.dll_AttachThreadInput]
mov dword [ebp - 0x328], eax
mov ecx, dword [ebp - 0x31c]
push ecx
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov dword [ebp - 0x334], eax
push 0
mov edx, dword [ebp - 0x324]
push edx
mov eax, dword [ebp - 0x320]
push eax
call dword [sym.imp.USER32.dll_AttachThreadInput]
mov dword [ebp - 0x32c], eax
push 0x438698
push str.__s__SOS_skip_by_foreground_window_without_instance
call fcn.0042b430
add esp, 8
mov dword [ebp - 0x58c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38]
call fcn.0042e3e0
mov eax, dword [ebp - 0x58c]
jmp 0x42e2d2
call fcn.0042b580
lea ecx, [ebp - 0x20]
call fcn.0042fc10
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x20]
call fcn.00430860
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [ebp - 0x20]
call fcn.0042fd50
mov byte [ebp - 4], 0xd
lea edx, [ebp - 0x14]
push edx
call fcn.0042ab10
add esp, 4
test eax, eax
je 0x42e26f
push str.setup.ini
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x338]
push ecx
call fcn.00403c00
add esp, 0xc
mov byte [ebp - 4], 0xe
lea edx, [ebp - 0x338]
push edx
call fcn.0042ab10
add esp, 4
test eax, eax
je 0x42ddae
xor eax, eax
mov word [ebp - 0x544], ax
push 0x206
push 0
lea ecx, [ebp - 0x542]
push ecx
call fcn.00413d10
add esp, 0xc
lea ecx, [ebp - 0x338]
call fcn.00402600
push eax
push 0x100
lea edx, [ebp - 0x544]
push edx
push 0
push str.sos_token
push 0x438768
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x544]
push eax
mov ecx, dword [ebp - 0x59c]
add ecx, 0xa4
call fcn.00402a10
mov ecx, dword [ebp - 0x59c]
add ecx, 0xa4
call fcn.00401380
movzx ecx, al
test ecx, ecx
jne 0x42ddae
lea ecx, [ebp - 0x338]
call fcn.00402600
push eax
push 0x100
lea edx, [ebp - 0x544]
push edx
push 0
push str.token_category
push 0x43879c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x544]
push eax
lea ecx, [ebp - 0x550]
call fcn.00402580
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x550]
call fcn.00401380
movzx ecx, al
test ecx, ecx
jne 0x42dc81
push 0x4387b0
mov ecx, dword [ebp - 0x59c]
add ecx, 0xa4
call fcn.00403cb0
lea edx, [ebp - 0x550]
push edx
mov ecx, dword [ebp - 0x59c]
add ecx, 0xa4
call fcn.00401490
lea ecx, [ebp - 0x338]
call fcn.00402600
push eax
push 0x100
lea eax, [ebp - 0x544]
push eax
push 0
push str.token_mode
push 0x4387d0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0x544]
push ecx
lea ecx, [ebp - 0x54c]
call fcn.00402580
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x54c]
call fcn.00401380
movzx edx, al
test edx, edx
jne 0x42dd01
push 0x4387e4
mov ecx, dword [ebp - 0x59c]
add ecx, 0xa4
call fcn.00403cb0
lea eax, [ebp - 0x54c]
push eax
mov ecx, dword [ebp - 0x59c]
add ecx, 0xa4
call fcn.00401490
lea ecx, [ebp - 0x338]
call fcn.00402600
push eax
push 0x100
lea ecx, [ebp - 0x544]
push ecx
push 0
push str.token_kind
push str.Settings
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edx, [ebp - 0x544]
push edx
lea ecx, [ebp - 0x548]
call fcn.00402580
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x548]
call fcn.00401380
movzx eax, al
test eax, eax
jne 0x42dd81
push 0x438818
mov ecx, dword [ebp - 0x59c]
add ecx, 0xa4
call fcn.00403cb0
lea ecx, [ebp - 0x548]
push ecx
mov ecx, dword [ebp - 0x59c]
add ecx, 0xa4
call fcn.00401490
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x548]
call fcn.00402b70
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x54c]
call fcn.00402b70
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x550]
call fcn.00402b70
cmp dword [0x445170], 1
jle 0x42e1d5
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [ebp - 0x558]
call fcn.00402580
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x554]
call fcn.00402b50
mov byte [ebp - 4], 0x13
mov dword [ebp - 0x55c], 0
jmp 0x42ddfb
mov edx, dword [ebp - 0x55c]
add edx, 1
mov dword [ebp - 0x55c], edx
mov eax, dword [ebp - 0x55c]
cmp eax, dword [0x445170]
jge 0x42e1b7
mov ecx, dword [ebp - 0x55c]
mov edx, dword [0x445178]
mov eax, dword [edx + ecx*4]
push eax
lea ecx, [ebp - 0x554]
call fcn.00402a10
push 0x438820
lea ecx, [ebp - 0x554]
call fcn.00401090
test eax, eax
je 0x42de54
push 0x438828
lea ecx, [ebp - 0x554]
call fcn.00401090
test eax, eax
jne 0x42dee1
push 0x438830
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x564]
push edx
call fcn.00403c00
add esp, 0xc
mov byte [ebp - 4], 0x14
push 0
lea ecx, [ebp - 0x564]
call fcn.00402600
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
push str.debug.dvm
lea ecx, [ebp - 0x564]
call fcn.00403570
push 0x438850
lea ecx, [ebp - 0x564]
call fcn.00402600
push eax
call fcn.00414cd8
add esp, 8
mov dword [ebp - 0x560], eax
cmp dword [ebp - 0x560], 0
je 0x42decd
mov eax, dword [ebp - 0x560]
push eax
call fcn.00414db9
add esp, 4
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x564]
call fcn.00402b70
jmp 0x42e1b2
push 0x438854
lea ecx, [ebp - 0x554]
call fcn.00401090
test eax, eax
je 0x42df0d
push 0x43885c
lea ecx, [ebp - 0x554]
call fcn.00401090
test eax, eax
jne 0x42df9a
push 0x438864
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x56c]
push edx
call fcn.00403c00
add esp, 0xc
mov byte [ebp - 4], 0x15
push 0
lea ecx, [ebp - 0x56c]
call fcn.00402600
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
push 0x43886c
lea ecx, [ebp - 0x56c]
call fcn.00403570
push 0x438888
lea ecx, [ebp - 0x56c]
call fcn.00402600
push eax
call fcn.00414cd8
add esp, 8
mov dword [ebp - 0x568], eax
cmp dword [ebp - 0x568], 0
je 0x42df86
mov eax, dword [ebp - 0x568]
push eax
call fcn.00414db9
add esp, 4
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x56c]
call fcn.00402b70
jmp 0x42e1b2
push 0x43888c
lea ecx, [ebp - 0x554]
call fcn.00401090
test eax, eax
je 0x42dfc2
push 0x438894
lea ecx, [ebp - 0x554]
call fcn.00401090
test eax, eax
jne 0x42e008
mov ecx, dword [ebp - 0x55c]
add ecx, 1
cmp ecx, dword [0x445170]
jge 0x42e003
mov edx, dword [ebp - 0x55c]
mov eax, dword [0x445178]
mov ecx, dword [eax + edx*4 + 4]
push ecx
mov ecx, dword [ebp - 0x59c]
add ecx, 0xa4
call fcn.00402a10
mov edx, dword [ebp - 0x55c]
add edx, 1
mov dword [ebp - 0x55c], edx
jmp 0x42e1b2
push 0x43889c
lea ecx, [ebp - 0x554]
call fcn.00401090
test eax, eax
je 0x42e034
push 0x4388a4
lea ecx, [ebp - 0x554]
call fcn.00401090
test eax, eax
jne 0x42e1b2
mov eax, dword [ebp - 0x55c]
add eax, 1
cmp eax, dword [0x445170]
jge 0x42e076
mov ecx, dword [ebp - 0x55c]
mov edx, dword [0x445178]
mov eax, dword [edx + ecx*4 + 4]
push eax
mov ecx, dword [ebp - 0x59c]
add ecx, 0xa8
call fcn.00402a10
mov ecx, dword [ebp - 0x55c]
add ecx, 1
mov dword [ebp - 0x55c], ecx
mov edx, dword [ebp - 0x55c]
add edx, 1
cmp edx, dword [0x445170]
jge 0x42e16f
mov eax, dword [ebp - 0x55c]
mov ecx, dword [0x445178]
mov edx, dword [ecx + eax*4 + 4]
push edx
lea ecx, [ebp - 0x570]
call fcn.00402580
mov byte [ebp - 4], 0x16
push 0x4388ac
lea ecx, [ebp - 0x570]
call fcn.00401090
test eax, eax
je 0x42e123
push 0x4388b4
lea ecx, [ebp - 0x570]
call fcn.00401090
test eax, eax
je 0x42e123
push 0x4388bc
lea ecx, [ebp - 0x570]
call fcn.00401090
test eax, eax
je 0x42e123
push 0x4388c4
lea ecx, [ebp - 0x570]
call fcn.00401090
test eax, eax
je 0x42e123
push 0x4388cc
lea ecx, [ebp - 0x570]
call fcn.00401090
test eax, eax
je 0x42e123
push 0x4388d4
lea ecx, [ebp - 0x570]
call fcn.00401090
test eax, eax
jne 0x42e134
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x570]
call fcn.00402b70
jmp 0x42e16f
lea eax, [ebp - 0x570]
push eax
mov ecx, dword [ebp - 0x59c]
add ecx, 0xa8
call fcn.00401070
mov ecx, dword [ebp - 0x55c]
add ecx, 1
mov dword [ebp - 0x55c], ecx
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x570]
call fcn.00402b70
jmp 0x42e076
mov ecx, dword [ebp - 0x59c]
add ecx, 0xa8
call fcn.00401380
movzx edx, al
test edx, edx
jne 0x42e1b2
mov eax, dword [ebp - 0x59c]
add eax, 0xa8
push ecx
mov ecx, esp
mov dword [ebp - 0x590], esp
push eax
call fcn.00402d90
mov dword [ebp - 0x5a4], eax
mov ecx, dword [ebp - 0x59c]
call fcn.0042c760
jmp 0x42ddec
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x554]
call fcn.00402b70
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x558]
call fcn.00402b70
mov ecx, dword [ebp - 0x59c]
add ecx, 0xa4
call fcn.00401380
movzx ecx, al
test ecx, ecx
je 0x42e229
mov ecx, dword [ebp - 0x59c]
add ecx, 0xa8
call fcn.00401380
movzx edx, al
test edx, edx
je 0x42e229
push ecx
mov ecx, esp
mov dword [ebp - 0x594], esp
push 0x4388dc
call fcn.00402580
mov dword [ebp - 0x5a8], eax
mov ecx, dword [ebp - 0x59c]
call fcn.0042c760
lea eax, [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x59c]
call fcn.0042c6f0
cmp dword [ebp - 0x40], 0
je 0x42e24f
lea ecx, [ebp - 0x14]
push ecx
mov ecx, dword [ebp - 0x59c]
call fcn.0042cb20
jmp 0x42e25e
lea edx, [ebp - 0x14]
push edx
mov ecx, dword [ebp - 0x59c]
call fcn.0042c370
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x338]
call fcn.00402b70
jmp 0x42e281
push str.CUnPackFileApp::InitInstance
push str.__s__SOS_skip_without_unpacking_files
call fcn.0042b430
add esp, 8
lea ecx, [ebp - 0x20]
call fcn.0042fc40
mov eax, dword [ebp - 0x59c]
add eax, 0x20
push eax
call fcn.00429ad0
add esp, 4
mov dword [ebp - 0x598], 0
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x14]
call fcn.00402b70
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x20]
call fcn.0042fbf0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38]
call fcn.0042e3e0
mov eax, dword [ebp - 0x598]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x84]
xor ecx, ebp
call fcn.00413c2f
mov esp, ebp
pop ebp
ret