Function at 0x419240
Capabilities:
Get common file path
Get disk information
Get memory capacity
Set environment variable
Set file attributes

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x480564
push eax
mov eax, 0x1678
mov dword fs:[0], esp
call fcn.0044d530
push ebx
mov ebx, dword [esp + 0x168c]
push ebp
push esi
push edi
lea eax, [esp + 0x38]
push 0x100
mov ebp, ecx
push eax
push ebx
mov dword [esp + 0x34], ebp
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
or esi, 0xffffffff
lea edi, [esp + 0x38]
mov ecx, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0x58
jbe 0x4192d0
lea ecx, [esp + 0x14]
push 0x45b
push ecx
call fcn.0040e100
add esp, 8
mov ecx, dword [esp + 0x169c]
push eax
mov dword [esp + 0x1694], 0
call fcn.004630f0
mov dword [esp + 0x1690], esi
lea ecx, [esp + 0x14]
jmp 0x41a656
push 0x49ccf4
push ebx
call fcn.0044f240
add esp, 8
test eax, eax
jne 0x41a621
push 0x49e13c
push ebx
call fcn.0044f240
add esp, 8
test eax, eax
jne 0x41a621
push eax
push str.SHARE_MEMORY_PATH
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
lea edx, [esp + 0x1288]
lea eax, [esp + 0x1388]
push edx
lea ecx, [esp + 0x148c]
push eax
lea edx, [esp + 0x360]
push ecx
push edx
push ebx
call fcn.0044d8ca
mov al, byte [esp + 0x36c]
add esp, 0x14
test al, al
je 0x41936f
mov edi, 0x49cdf4
mov ecx, esi
xor eax, eax
lea edx, [esp + 0x358]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or esi, 0xffffffff
mov eax, dword [0x4aacc8]
test eax, eax
jne 0x4193bd
mov al, byte [esp + 0x358]
test al, al
jne 0x4193bd
lea eax, [esp + 0x14]
push 0x44e
push eax
call fcn.0040e100
add esp, 8
mov ecx, dword [esp + 0x169c]
push eax
mov dword [esp + 0x1694], 2
call fcn.004630f0
mov dword [esp + 0x1690], esi
lea ecx, [esp + 0x14]
jmp 0x41a656
mov edi, ebx
mov ecx, esi
xor eax, eax
lea edx, [esp + 0x38]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x180
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x3c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str._systemkey
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x3c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.0044f2c0
mov ebx, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
add esp, 8
lea ecx, [esp + 0x38]
push 0x80
push ecx
call ebx
lea edx, [esp + 0x38]
push edx
call fcn.0040e3a0
add esp, 4
mov byte [esp + 0x23], al
lea eax, [esp + 0x358]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 3
jne 0x419487
mov al, byte [esp + 0x358]
test al, al
je 0x419487
mov al, byte [esp + 0x23]
test al, al
jne 0x419487
mov ecx, dword [esp + 0x1698]
add ebp, 0x11c
push 0x100
push ebp
push ecx
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
jmp 0x4196ac
add ebp, 0x11c
push ebp
push 0xff
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
cmp byte [ebp], 0
jne 0x4194ca
mov edi, str.c:_temp
or ecx, 0xffffffff
xor eax, eax
push ebp
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.0045fc96
add esp, 4
mov dl, 0x2f
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
mov esi, dword [esp + 0x28]
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp byte [ecx + esi + 0x11b], 0x5c
je 0x4194fb
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp byte [ecx + esi + 0x11b], dl
jne 0x419510
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [ecx + esi + 0x11b], al
jmp 0x4194cc
mov edi, 0x49cdf4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push eax
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x14]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x30]
call fcn.0041e820
mov edi, dword [eax]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x10]
call fcn.00462fb7
push ebp
call fcn.0045fc96
add esp, 4
lea eax, [esp + 0x38]
push 0x100
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
lea edi, [esp + 0x38]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0x5a
jbe 0x419601
lea eax, [esp + 0x10]
push 0x457
push eax
call fcn.0040e100
add esp, 8
mov ecx, dword [esp + 0x169c]
push eax
mov dword [esp + 0x1694], 3
call fcn.004630f0
mov dword [esp + 0x1690], 0xffffffff
lea ecx, [esp + 0x10]
jmp 0x41a656
mov ecx, dword [esp + 0x1698]
push ecx
lea ecx, [esp + 0x18]
call fcn.00463025
push str._system
lea ecx, [esp + 0x18]
mov dword [esp + 0x1694], 4
call fcn.00463393
push ebp
lea ecx, [esp + 0x1c]
call fcn.00463025
push str._system
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1694], 5
call fcn.00463393
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push 0x49cf3c
push edx
push eax
call fcn.0040a900
add esp, 0xc
lea ecx, [esp + 0x18]
push ebp
call fcn.00463140
push str.config
lea ecx, [esp + 0x1c]
call fcn.00463393
mov ecx, dword [esp + 0x18]
push ecx
call fcn.0045fc96
add esp, 4
lea ecx, [esp + 0x18]
mov byte [esp + 0x1690], 4
call fcn.00462fb7
lea ecx, [esp + 0x14]
mov dword [esp + 0x1690], 0xffffffff
call fcn.00462fb7
push ebp
lea ecx, [esp + 0x20]
call fcn.00463025
push str.config_runfiles
lea ecx, [esp + 0x20]
mov dword [esp + 0x1694], 6
call fcn.00463393
mov edx, dword [esp + 0x1c]
push edx
call fcn.0045fc96
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x3c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x3c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str._temphist
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x3c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.00409890
lea ecx, [esp + 0x40]
push ecx
call fcn.0045fb2d
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x44]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x44]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str._system_base.dic
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x44]
and ecx, 3
push 0x180
rep movsb byte es:[edi], byte [esi]
push eax
call fcn.0044f2c0
add esp, 0x14
lea ecx, [esp + 0x38]
push 0x80
push ecx
call ebx
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x38]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x180
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x3c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str._system_basecol.dic
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x3c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.0044f2c0
add esp, 8
lea ecx, [esp + 0x38]
push 0x80
push ecx
call ebx
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x38]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x38]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str._systemconfig.dic
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
push 0x180
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x3c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.0044f2c0
add esp, 8
lea ecx, [esp + 0x38]
push 0x80
push ecx
call ebx
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x38]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x180
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x3c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str._system_format.dic
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x3c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.0044f2c0
add esp, 8
lea ecx, [esp + 0x38]
push 0x80
push ecx
call ebx
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x38]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x38]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str._systemkey
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x180
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x3c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.0044f2c0
add esp, 8
lea ecx, [esp + 0x38]
push 0x80
push ecx
call ebx
lea edx, [esp + 0x38]
push edx
call fcn.0045fb2d
lea eax, [esp + 0x3c]
push 0x49e75c
push eax
call fcn.0044d7eb
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4199c3
lea ecx, [esp + 0x10]
push 0x44f
push ecx
call fcn.0040e100
add esp, 8
mov ecx, dword [esp + 0x169c]
push eax
mov byte [esp + 0x1694], 7
call fcn.004630f0
mov byte [esp + 0x1690], 6
lea ecx, [esp + 0x10]
jmp 0x41a09a
push 0
call fcn.0044f160
add esp, 4
shl eax, 4
push str.PRODUCT__TRS4MMRR_MMRRMMRR_MMRRGMTU_MQPRDDMU_n
push esi
mov dword [0x4ab298], eax
call fcn.0044e4a2
mov edx, dword [0x4ab298]
add esp, 8
push edx
push str.TOKEN___lu_n
push esi
call fcn.0044e4a2
mov eax, dword [0x4ab298]
add esp, 0xc
add eax, 4
push eax
push str.CONFIG___lu_n
push esi
call fcn.0044e4a2
mov ecx, dword [0x4ab298]
add esp, 0xc
add ecx, 5
push ecx
push str.BASE___lu_n
push esi
call fcn.0044e4a2
mov edx, dword [0x4ab298]
add esp, 0xc
add edx, 6
push edx
push str.BASECOL___lu_n
push esi
call fcn.0044e4a2
mov eax, dword [0x4ab298]
add esp, 0xc
add eax, 7
push eax
push str.FORMAT___lu_n
push esi
call fcn.0044e4a2
mov ecx, dword [0x4ab298]
add esp, 0xc
add ecx, 8
push ecx
push str.INSTANCE___lu_n
push esi
call fcn.0044e4a2
mov edx, dword [0x4ab298]
add esp, 0xc
add edx, 9
push edx
push str.GLOBAL___lu_n
push esi
call fcn.0044e4a2
push esi
call fcn.0044d6ef
add esp, 0x10
lea ecx, [esp + 0x24]
push ebp
call fcn.00463025
mov eax, dword [esp + 0x24]
mov byte [esp + 0x1690], 8
mov ecx, dword [eax - 8]
cmp byte [ecx + eax - 1], 0x3a
jne 0x419abe
push 0x49cdf4
lea ecx, [esp + 0x28]
call fcn.00463393
mov eax, dword [esp + 0x24]
push eax
call fcn.0043f880
cmp eax, 1
jne 0x41a08e
push str.jsrcdjlfg
call fcn.0043f8d0
test eax, eax
mov dword [esp + 0x14], eax
jne 0x419b17
lea eax, [esp + 0x10]
push 0x44d
push eax
call fcn.0040e100
add esp, 8
mov ecx, dword [esp + 0x169c]
push eax
mov byte [esp + 0x1694], 9
call fcn.004630f0
mov byte [esp + 0x1690], 8
lea ecx, [esp + 0x10]
jmp 0x41a089
mov dl, byte [0x4aa680]
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x5d9]
mov byte [esp + 0x5d8], dl
mov byte [esp + 0x4d8], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x4d9]
mov byte [esp + 0x6d8], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x6d9]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x2c]
stosb byte es:[edi], al
call fcn.0041e2d0
mov eax, dword [eax]
or ecx, 0xffffffff
mov edi, eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x6d8]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x10]
call fcn.00462fb7
mov edi, str._trsmin.ini
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x6d8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x6d8]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x5dc]
push 0x100
push ecx
push 0x4aa680
push str.trsibase
push str.install
call fcn.0040e460
mov al, byte [esp + 0x5f0]
add esp, 0x18
test al, al
jne 0x419cc4
mov ebx, dword [esp + 0x1698]
or ecx, 0xffffffff
mov edi, ebx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x38]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x38]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov edi, str.ibase
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x3c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.0045fabd
add esp, 8
test eax, eax
jne 0x419c9a
lea ecx, [esp + 0x5d8]
push 0x100
lea edx, [esp + 0x3c]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
jmp 0x419ccb
lea edi, [esp + 0x38]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x5d8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x419ccb
mov ebx, dword [esp + 0x1698]
lea ecx, [esp + 0x6d8]
lea edx, [esp + 0x4d8]
push ecx
push 0x100
push edx
push 0x4aa680
push str.trsdict
push str.install
call fcn.0040e460
mov al, byte [esp + 0x4f0]
add esp, 0x18
test al, al
jne 0x419dab
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x38]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x38]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov edi, str.dict
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x3c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.0045fabd
add esp, 8
test eax, eax
jne 0x419d83
lea ecx, [esp + 0x4d8]
push 0x100
lea edx, [esp + 0x3c]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
jmp 0x419dab
lea edi, [esp + 0x38]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x4d8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cl, byte [0x4aa680]
xor eax, eax
mov byte [esp + 0x258], cl
mov ecx, 0x3f
lea edi, [esp + 0x259]
lea edx, [esp + 0x6d8]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push edx
lea eax, [esp + 0x25c]
push 0x100
push eax
push 0x4aa680
push str.trsibase1
push str.install
call fcn.0040e460
mov al, byte [esp + 0x270]
add esp, 0x18
test al, al
jne 0x419eab
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x38]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x38]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov edi, str.ibase1
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x3c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.0045fabd
add esp, 8
test eax, eax
jne 0x419e83
lea ecx, [esp + 0x258]
push 0x100
lea edx, [esp + 0x3c]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
jmp 0x419eab
lea edi, [esp + 0x38]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x258]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cl, byte [0x4aa680]
xor eax, eax
mov byte [esp + 0x3d8], cl
mov ecx, 0x3f
lea edi, [esp + 0x3d9]
lea edx, [esp + 0x6d8]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push edx
lea eax, [esp + 0x3dc]
push 0x100
push eax
push 0x4aa680
push str.trsibase2
push str.install
call fcn.0040e460
mov al, byte [esp + 0x3f0]
add esp, 0x18
test al, al
jne 0x419fab
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x38]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x38]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov edi, str.ibase2
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x3c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.0045fabd
add esp, 8
test eax, eax
jne 0x419f83
lea ecx, [esp + 0x3d8]
push 0x100
lea edx, [esp + 0x3c]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
jmp 0x419fab
lea edi, [esp + 0x38]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x3d8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [0x4aacc4], 1
jne 0x41a0b3
mov al, byte [esp + 0x258]
mov dl, byte [esp + 0x259]
xor ecx, ecx
mov byte [esp + 0x2c], al
mov dword [esp + 0x2d], ecx
mov byte [esp + 0x2d], dl
mov dword [esp + 0x31], ecx
test al, al
mov byte [esp + 0x35], cl
mov byte [esp + 0x2e], cl
je 0x41a012
mov edi, 0x49cdf4
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x2c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [esp + 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 5
jne 0x41a047
mov al, byte [esp + 0x258]
test al, al
je 0x41a0b3
lea ecx, [esp + 0x258]
push 0
push ecx
call fcn.0045fabd
add esp, 8
test eax, eax
je 0x41a0b3
mov edx, dword [esp + 0x14]
push edx
call fcn.0043f960
call fcn.0043f8b0
lea eax, [esp + 0x10]
push 0x450
push eax
call fcn.0040e100
add esp, 8
mov ecx, dword [esp + 0x169c]
push eax
mov byte [esp + 0x1694], 0xa
call fcn.004630f0
mov byte [esp + 0x1690], 8
lea ecx, [esp + 0x10]
call fcn.00462fb7
mov byte [esp + 0x1690], 6
lea ecx, [esp + 0x24]
call fcn.00462fb7
mov dword [esp + 0x1690], 0xffffffff
lea ecx, [esp + 0x1c]
jmp 0x41a656
mov edx, dword [esp + 0x14]
push 0
lea ecx, [esp + 0xdb4]
push 0
push ecx
push edx
call fcn.0043f9f0
lea eax, [esp + 0x8d8]
push 1
push eax
push 0
call fcn.0043ed90
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x7d8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x7d8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str._temp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x7d8]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.0045fc96
lea ecx, [esp + 0x7dc]
lea edx, [esp + 0x11b4]
push ecx
push edx
call fcn.00459170
add esp, 0xc
test eax, eax
je 0x41a185
lea edi, [esp + 0x7d8]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xcd8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x7d8]
lea edx, [esp + 0x1210]
push ecx
push edx
call fcn.00459170
add esp, 8
test eax, eax
je 0x41a1cc
lea edi, [esp + 0x7d8]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xd38]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x4aa680
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x8d8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea ebp, [esp + 0xdb0]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov al, byte [esp + 0xdb0]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor ecx, ecx
test al, al
je 0x41a4d5
jmp 0x41a213
mov ecx, dword [esp + 0x18]
mov al, byte [ebp]
inc ecx
cmp al, 0x2c
mov dword [esp + 0x18], ecx
mov ebx, ebp
je 0x41a235
cmp al, 0x3b
je 0x41a235
cmp al, 9
je 0x41a235
test al, al
je 0x41a235
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x2c
jne 0x41a221
cmp ecx, 1
mov byte [ebx], 0
jne 0x41a2c3
lea ecx, [esp + 0x5d8]
push ecx
push ebp
call fcn.00459170
add esp, 8
test eax, eax
je 0x41a48b
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x8d8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
lea edx, [esp + 0x8d8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x49e154
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x5d8]
jmp 0x41a45f
cmp ecx, 2
jne 0x41a34e
lea eax, [esp + 0x4d8]
push eax
push ebp
call fcn.00459170
add esp, 8
test eax, eax
je 0x41a48b
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x8d8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
lea edx, [esp + 0x8d8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x49e154
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x4d8]
jmp 0x41a45f
cmp ecx, 3
jne 0x41a3d9
lea eax, [esp + 0x258]
push eax
push ebp
call fcn.00459170
add esp, 8
test eax, eax
je 0x41a48b
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x8d8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
lea edx, [esp + 0x8d8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x49e154
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x258]
jmp 0x41a45f
cmp ecx, 4
jne 0x41a48b
lea eax, [esp + 0x3d8]
push eax
push ebp
call fcn.00459170
add esp, 8
test eax, eax
je 0x41a48b
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x8d8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
lea edx, [esp + 0x8d8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x49e154
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x3d8]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x8d8]
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dl, byte [ebx + 1]
lea ebp, [ebx + 1]
test dl, dl
je 0x41a4ce
mov edi, 0x49ccf4
or ecx, 0xffffffff
xor eax, eax
lea ebx, [esp + 0x8d8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, ebx
mov ebx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
test dl, dl
rep movsb byte es:[edi], byte [esi]
jne 0x41a20f
cmp dword [esp + 0x18], 3
jge 0x41a547
lea eax, [esp + 0x258]
push eax
call fcn.0045fc96
mov edi, 0x49f048
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x8d8]
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea edx, [esp + 0x8d8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x258]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [esp + 0x238]
mov word [esp + 0xda2], 0
push eax
mov dword [esp + 0x23c], 0x20
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
mov edi, dword [esp + 0x14]
push str.jsrcdjlfg
push 0
lea ecx, [esp + 0x8e0]
push 0
push ecx
push edi
call fcn.0043fc30
test eax, eax
jge 0x41a5ed
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x10]
push edx
call fcn.0041d150
mov esi, dword [esp + 0x169c]
push eax
mov ecx, esi
mov byte [esp + 0x1694], 0xb
call fcn.004630f0
lea ecx, [esp + 0x10]
mov byte [esp + 0x1690], 8
call fcn.00462fb7
lea eax, [esp + 0x28]
push 0x44c
push eax
call fcn.0040e100
mov eax, dword [eax]
mov esi, dword [esi]
add esp, 8
push 0x40000
push eax
push esi
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 0x28]
call fcn.00462fb7
push edi
call fcn.0043f960
call fcn.0043f8b0
lea ecx, [esp + 0x24]
mov byte [esp + 0x1690], 6
call fcn.00462fb7
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1690], 0xffffffff
call fcn.00462fb7
mov al, 1
jmp 0x41a65d
lea ecx, [esp + 0x10]
push 0x45c
push ecx
call fcn.0040e100
add esp, 8
mov ecx, dword [esp + 0x169c]
push eax
mov dword [esp + 0x1694], 1
call fcn.004630f0
mov dword [esp + 0x1690], esi
lea ecx, [esp + 0x10]
call fcn.00462fb7
xor al, al
mov ecx, dword [esp + 0x1688]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1684
ret 8