Function at 0x9e27d0
Capabilities:
Accept command line arguments
Set environment variable
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0xa88a84
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x40
push ebx
push esi
push edi
call fcn.009e30e0
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push str.tcHook.dll
mov byte [ebp - 0x18], 0
call edi
xor esi, esi
cmp eax, esi
je 0x9e280e
mov byte [ebp - 0x18], 1
mov eax, 0xa475f0
push 0x208
mov dword [0xa9fe68], eax
mov dword [0xa9fe64], eax
mov dword [fcn.00a47710], 0xa47710
mov dword [0xa9fe70], 0xa476c0
call fcn.009ef3a0
add esp, 4
lea ecx, [ebp - 0x2c]
push eax
call fcn.009f85d0
push 0x40
mov dword [ebp - 4], esi
call fcn.009ef380
add esp, 4
mov dword [ebp - 0x20], eax
cmp eax, esi
mov byte [ebp - 4], 1
je 0x9e286d
mov ecx, eax
call fcn.00a44e20
mov ebx, eax
mov dword [ebp - 0x10], ebx
jmp 0x9e2872
mov dword [ebp - 0x10], esi
mov ebx, esi
mov eax, dword [ebp - 0x2c]
push 0x104
push eax
push 0xa9e534
mov byte [ebp - 4], 0
call fcn.00a202c0
test eax, eax
je 0x9e28bf
mov ecx, dword [ebp - 0x2c]
push str.Thinstall.lic
push 0x5c
push ecx
call fcn.00a7e1b5
add esp, 8
add eax, 2
push eax
call fcn.00a7e270
mov edx, dword [ebp - 0x2c]
add esp, 8
mov ecx, ebx
push edx
call fcn.00a45d60
cmp eax, esi
jne 0x9e29a9
mov eax, dword [ebp - 0x2c]
push 0x104
push eax
push esi
call edi
push eax
call fcn.00a221b0
mov ecx, dword [ebp - 0x2c]
push str.Thinstall.lic
push 0x5c
push ecx
call fcn.00a7e1b5
add esp, 8
add eax, 2
push eax
call fcn.00a7e270
mov edx, dword [ebp - 0x2c]
add esp, 8
mov ecx, ebx
push edx
call fcn.00a45d60
mov esi, eax
test esi, esi
jne 0x9e29a9
mov eax, dword [ebp - 0x2c]
push 0x104
push eax
push 0xa9e7a8
call fcn.00a202c0
test eax, eax
je 0x9e2961
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.00a7e07a
mov edx, eax
mov eax, dword [ebp - 0x2c]
add esp, 4
cmp word [eax + edx*2 - 2], 0x5c
je 0x9e2946
push 0xa9e7a4
push eax
call fcn.00a7e246
mov eax, dword [ebp - 0x2c]
add esp, 8
push str.Thinstall.lic
push eax
call fcn.00a7e246
mov eax, dword [ebp - 0x2c]
add esp, 8
mov ecx, ebx
push eax
call fcn.00a45d60
mov esi, eax
test esi, esi
jne 0x9e29a9
mov ecx, dword [ebp - 0x2c]
push 0x104
push ecx
push 0xa9e534
call fcn.00a202c0
test eax, eax
je 0x9e298b
mov edx, dword [ebp - 0x2c]
mov ecx, ebx
push edx
call fcn.00a45ee0
test eax, eax
jne 0x9e29a9
mov eax, dword [ebp - 0x2c]
push 0x104
push eax
push 0
call edi
push eax
call fcn.00a221b0
mov ecx, dword [ebp - 0x2c]
push ecx
mov ecx, ebx
call fcn.00a45ee0
push 0
mov ecx, ebx
call fcn.00a45d40
push eax
call fcn.00a356b0
mov eax, dword [0xab4cc8]
add esp, 8
test eax, eax
je 0x9e29ec
mov ebx, dword [ebp + 8]
push ebx
cmp dword [ebx + 4], 1
jne 0x9e29e0
call eax
add esp, 4
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
call eax
add esp, 4
mov esi, eax
jmp 0x9e2fcc
mov eax, dword [0xab4ccc]
test eax, eax
je 0x9e2ac9
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0xc]
cmp eax, 2
je 0x9e2a09
cmp eax, 3
jne 0x9e2a12
push eax
call fcn.009eb6d0
add esp, 4
mov ecx, dword [0xab4cd0]
mov edi, 1
mov dword [0xab4cd4], edi
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
push edx
push eax
push ecx
call dword [0xab4ccc]
mov ebx, eax
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x9e2aa7
mov edx, dword [0xaa2204]
mov eax, dword [edx]
shr eax, 0x1d
test al, 1
je 0x9e2a5b
mov ecx, dword [esi + 8]
push ecx
push str.Thinstall_DllMain_DLL_PROCESS_DETACH___shutdown_for_module__x__n
call fcn.009fe320
add esp, 8
mov edx, dword [esi + 8]
push edx
call fcn.009e8ab0
call fcn.009ebe80
call fcn.00a3e4b0
xor eax, eax
lea ecx, [ebp - 0x2c]
mov dword [0xab4cd4], edi
mov dword [0xab4cd0], eax
mov dword [0xab4cc8], eax
mov dword [0xab4ccc], eax
mov dword [ebp - 4], 0xffffffff
call fcn.009f85b0
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x2c]
mov dword [ebp - 4], 0xffffffff
call fcn.009f85b0
pop edi
mov eax, ebx
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 8]
push 0
call edi
mov ecx, 6
mov esi, ebx
mov edi, 0xab4ca8
mov dword [0xab4c94], eax
mov eax, dword [0xab4cd4]
rep movsd dword es:[edi], dword [esi]
xor edi, edi
cmp eax, edi
jne 0x9e2af9
mov dword [0xab4f48], edi
call fcn.00a354a0
push edi
push str.DisableDebugger
call fcn.00a350d0
add esp, 8
test eax, eax
jne 0x9e2bff
lea eax, [ebp - 0x14]
push eax
push ebx
call fcn.009e2090
mov esi, eax
mov eax, dword [ebp - 0x14]
add esp, 8
cmp eax, edi
jne 0x9e2fcc
mov ecx, dword [ebp - 0x2c]
push 0x104
push ecx
push str.TS_SBCLEANUP
call fcn.00a202c0
test eax, eax
je 0x9e2b4c
mov edx, dword [ebp - 0x2c]
push edx
call fcn.009e2710
add esp, 4
cmp dword [0xab4cd4], edi
jne 0x9e2df8
mov eax, dword [ebx + 8]
push eax
call fcn.009f90e0
mov eax, dword [0xab4cd4]
add esp, 4
cmp eax, edi
jne 0x9e2df8
call fcn.00a47290
call fcn.009f9560
push edi
push 0x80
push 3
push edi
mov esi, eax
push 1
push 0x80000000
push esi
mov dword [ebp - 0x20], esi
call fcn.00a227b0
mov ebx, eax
cmp ebx, 0xffffffff
mov dword [ebp - 0x1c], ebx
jne 0x9e2bbd
push esi
push str.load_exe::Unable_to_open__ls_for_reading
push 0x3e8
push str.C:gecode_rick_vos3_thinstallos_ts_stub.cpp
call fcn.009e3430
add esp, 8
call eax
add esp, 8
push ebx
call fcn.00a35740
add esp, 4
call fcn.009fe5d0
mov ecx, dword [ebp - 0x10]
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x9e2c78
push pe_nt_image_headers32
call fcn.009ef380
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
mov byte [ebp - 4], 2
je 0x9e2c07
push str.Thinstall.drv:
mov ecx, eax
call fcn.00a16ab0
jmp 0x9e2c09
mov dword [ebp - 0x14], edi
jmp 0x9e2b29
xor eax, eax
push eax
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0
call fcn.009f85d0
xor esi, esi
mov byte [ebp - 4], 3
test edi, edi
jbe 0x9e2c51
mov edx, dword [ebp - 0x10]
lea ebx, [edx + 4]
mov eax, dword [ebp - 0x10]
cmp esi, dword [eax + 0x18]
jae 0x9e2c32
mov eax, dword [ebx]
jmp 0x9e2c34
xor eax, eax
mov ecx, dword [ebp - 0x4c]
push eax
push str._0x_x
push ecx
call fcn.00a173c0
add esp, 0xc
inc esi
add ebx, 4
cmp esi, edi
jb 0x9e2c26
mov ebx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x4c]
push 0xa
push 1
call fcn.00a16dd0
mov edx, dword [ebp - 0x4c]
mov eax, dword [edx + 8]
push eax
call fcn.009fe320
add esp, 4
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0
call fcn.009f8550
call fcn.00a47020
call fcn.00a46a60
push 0
push 0xa9e1c0
call fcn.00a35380
add esp, 8
test eax, eax
jne 0x9e2c9f
push 0xd
call fcn.009e2ff0
add esp, 4
push 0
push 0xa9e1e0
call fcn.00a35380
push 0
push 0xa9e208
mov edi, eax
call fcn.00a35380
push 0xa9e6f0
push 0xa9e228
mov esi, eax
call fcn.00a35380
push eax
push esi
push edi
call fcn.00a46210
add esp, 0x24
test eax, eax
jne 0x9e2ce3
push 0xe
call fcn.009e2ff0
add esp, 4
mov esi, dword [ebp - 0x10]
test esi, esi
je 0x9e2cfa
mov ecx, esi
call fcn.00a44f20
push esi
call fcn.00a7d8f0
add esp, 4
mov eax, dword [ebp - 0x18]
push eax
call fcn.00a01700
call fcn.009e2350
mov ecx, dword [ebp - 0x20]
push ecx
push ebx
call fcn.00a113c0
call fcn.00a3fe20
push ebx
call fcn.00a448b0
call fcn.009f8910
push 0x210
call fcn.009ef380
add esp, 0x14
mov dword [ebp - 0x24], eax
test eax, eax
mov byte [ebp - 4], 4
je 0x9e2d43
mov ecx, eax
call fcn.00a155c0
jmp 0x9e2d45
xor eax, eax
push eax
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0
call fcn.009f85d0
mov byte [ebp - 4], 5
call fcn.009f9550
mov ebx, eax
mov ecx, 7
mov edi, str._drive_
mov esi, ebx
xor edx, edx
repe cmpsw word [esi], word es:[edi]
jne 0x9e2db2
mov ax, word [ebx + 0xe]
mov ecx, dword [ebp - 0x34]
push eax
call fcn.00a15cc0
mov ecx, dword [ebp - 0x34]
push 0x3a
call fcn.00a15cc0
mov esi, dword [ebp - 0x34]
add ebx, 0x12
test ebx, ebx
je 0x9e2da5
push ebx
call fcn.00a7e07a
add esp, 4
mov ecx, esi
push eax
push ebx
call fcn.00a15880
jmp 0x9e2dcc
xor eax, eax
mov ecx, esi
push eax
push ebx
call fcn.00a15880
jmp 0x9e2dcc
mov ecx, dword [ebp - 0x34]
push 1
push ecx
push ebx
call fcn.00a7e07a
add esp, 4
inc eax
push eax
push ebx
call fcn.00a141f0
add esp, 0x10
mov ecx, dword [ebp - 0x34]
call fcn.00a15680
push eax
mov ecx, 0xab4ff0
call fcn.009e36f0
mov edx, dword [ebp - 0x1c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0
call fcn.009f8580
mov ebx, dword [ebp + 8]
push ebx
call fcn.009e1040
mov eax, dword [0xab4cd4]
add esp, 4
test eax, eax
jne 0x9e2e72
call fcn.00a443e0
call fcn.00a44350
call fcn.00a43d80
call fcn.00a33860
call fcn.00a17c40
push 0x9e1060
call fcn.009e3460
add esp, 4
call fcn.00a13dd0
call fcn.00a3e4b0
call fcn.009ecd50
call fcn.009f5e40
call fcn.00a3e4b0
call fcn.00a3dc50
call fcn.00a37860
call fcn.00a36260
call fcn.00a0c430
call fcn.00a35f80
push str.KERNEL32.DLL
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [0xab4c9c], eax
mov eax, dword [ebx + 8]
push 0x104
mov dword [0xab4cc0], eax
call fcn.009ef3a0
add esp, 4
lea ecx, [ebp - 0x3c]
push eax
call fcn.009f85d0
mov ecx, dword [ebp - 0x3c]
push 0x104
push ecx
push 0
mov byte [ebp - 4], 6
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov edx, dword [ebp - 0x3c]
mov ecx, 0xab4fbc
push edx
call fcn.009e36f0
push 0xab4fbc
call fcn.009e11e0
add esp, 4
call fcn.009f9560
mov esi, eax
test esi, esi
je 0x9e2edb
push esi
call fcn.00a7e07a
add esp, 4
push eax
push esi
mov ecx, 0xaf47d8
call fcn.00a15a90
push 0x210
call fcn.009ef380
add esp, 4
mov dword [ebp + 8], eax
test eax, eax
mov byte [ebp - 4], 7
je 0x9e2f09
push esi
mov ecx, eax
call fcn.00a152e0
jmp 0x9e2f0b
xor eax, eax
push eax
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 6
call fcn.009f85d0
mov ecx, dword [ebp - 0x44]
mov byte [ebp - 4], 8
call fcn.00a15680
push eax
mov ecx, 0xab4f80
call fcn.009e36f0
push 0xab4f80
call fcn.009e11e0
mov eax, dword [0xab4fbc]
push eax
push 0
call fcn.009fed80
add esp, 0xc
cmp eax, 1
jne 0x9e2f4f
int3
push 0
push str.TS_EXECUTE_EXTERNAL
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
mov ecx, dword [0xab4f80]
push ecx
call fcn.00a17c10
mov edx, dword [0xab4f80]
push edx
call fcn.009e1130
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push eax
push str.cmdline_s_n
call fcn.009fe320
mov eax, dword [0xab4cd4]
add esp, 8
test eax, eax
jne 0x9e2f99
call fcn.00a17a10
call fcn.009fe430
test al, al
push ebx
je 0x9e2faa
call fcn.009e1ec0
jmp 0x9e2faf
call fcn.009e1260
add esp, 4
lea ecx, [ebp - 0x44]
mov esi, eax
mov byte [ebp - 4], 6
call fcn.009f8580
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0
call fcn.009f85b0
lea ecx, [ebp - 0x2c]
mov dword [ebp - 4], 0xffffffff
call fcn.009f85b0
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret