Function at 0x4826e0
Capabilities:
Create directory
Create process on windows
Delete file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4a378a
mov eax, dword fs:[0]
push eax
sub esp, 0x90
mov eax, dword [0x4c6184]
xor eax, esp
mov dword [esp + 0x88], eax
push ebx
push esi
push edi
mov eax, dword [0x4c6184]
xor eax, esp
push eax
lea eax, [esp + 0xa0]
mov dword fs:[0], eax
mov esi, ecx
mov ecx, dword [0x4c74e8]
mov eax, ecx
shr eax, 1
shr ecx, 2
and al, 1
and cl, 1
xor ebx, ebx
mov byte [esp + 0x1f], al
mov byte [esp + 0x1e], cl
cmp al, bl
jne 0x48274a
cmp cl, bl
je 0x4829e5
mov byte [esp + 0x38], bl
mov ecx, dword [esp + 0x38]
push ecx
push ebx
lea ecx, [esp + 0x3c]
mov dword [esp + 0x38], ebx
call fcn.0041c7c0
mov dword [esp + 0xa8], ebx
mov eax, dword [0x4cfcc4]
lea edx, [esp + 0x30]
push edx
mov dword [esp + 0x18], ebx
push str.Files
lea ebx, [esp + 0x1c]
mov edx, str.File_Setup_PlusNetwork
call fcn.0041df40
test al, al
je 0x4829a6
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x4829a6
lea eax, [esp + 0x18]
push eax
call fcn.0041bb70
mov byte [esp + 0xa8], 1
mov ecx, dword [0x4d0184]
push ecx
push str._sSettings
lea edi, [esp + 0x20]
call fcn.00417b50
mov edx, dword [esp + 0x20]
add esp, 8
push 0
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [esp + 0x14]
push eax
call fcn.0041bb70
mov byte [esp + 0xa8], 2
mov ecx, dword [esp + 0x18]
push ecx
push str._sPlusFiles.dat
lea edi, [esp + 0x1c]
call fcn.00417b50
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x1c]
push ebx
push edx
call fcn.00417c70
add esp, 0x10
test al, al
je 0x48294b
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push eax
mov ecx, 0x4a999c
call fcn.0041c940
add esp, 4
test al, al
je 0x48294b
lea ecx, [esp + 0x10]
push ecx
call fcn.0041bb70
mov byte [esp + 0xa8], 3
mov edx, dword [esp + 0x18]
push edx
push str.__sSettings.exe_
lea edi, [esp + 0x18]
call fcn.00417b50
add esp, 8
cmp byte [esp + 0x1e], 0
je 0x48286c
mov edx, str._HP
mov eax, edi
call fcn.00418fa0
cmp byte [esp + 0x1f], 0
je 0x482881
mov edx, str._SP
lea eax, [esp + 0x10]
call fcn.00418fa0
push 0x44
lea eax, [esp + 0x40]
push 0
push eax
call fcn.0048a470
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov dword [esp + 0x3c], 0x44
cmp dword [eax - 4], 1
jle 0x4828c8
mov ecx, dword [eax - 0xc]
push ecx
lea edx, [esp + 0x14]
push edx
call fcn.00416ed0
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x40]
push edx
push 0
push 0
push 0
push 0
push 0
push 0
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x48290f
mov eax, dword [esp + 0x20]
push 0x1388
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [esp + 0x24]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
call edi
mov edx, dword [esp + 0x20]
push edx
call edi
mov eax, dword [esp + 0x10]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.004883c5
add esp, 8
test eax, eax
js 0x482c5f
mov ecx, dword [esp + 0x10]
cmp eax, dword [ecx - 8]
jg 0x482c5f
mov dword [ecx - 0xc], eax
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov word [edx + eax*2], cx
lea eax, [esp + 0x10]
call fcn.0043ec30
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov byte [esp + 0xa8], 1
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x48297e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xa8], 0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4829a6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0xa8], 0xffffffff
mov edi, dword [esp + 0x34]
test edi, edi
je 0x4829e3
lea ecx, [edi + 4]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x4829e3
mov eax, dword [edi]
mov edx, dword [eax + 4]
mov ecx, edi
call edx
lea eax, [edi + 8]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x4829e3
mov edx, dword [edi]
mov eax, dword [edx + 8]
mov ecx, edi
call eax
xor ebx, ebx
test byte [0x4c74e8], 1
je 0x482c3b
mov edi, dword [esi + 0x3c8]
mov eax, dword [edi + 0x3d0]
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x482a2c
mov edx, dword [edi + 0x3d0]
push ebx
push 0x4caddc
push 0x4cacfc
push ebx
push edx
call fcn.0049b6c3
add esp, 0x14
call fcn.004837a0
mov ebx, dword [esi + 0x3c8]
lea edi, [esp + 0x88]
call fcn.00474420
mov eax, dword [esi + 0x3c8]
sub dword [esp + 0x8c], 2
mov edx, dword [eax + 4]
push 0
mov ecx, edi
push ecx
mov ebx, 1
push edx
mov byte [eax + 0xd0], bl
call dword [sym.imp.USER32.dll_InvalidateRect]
lea eax, [esp + 0x18]
push eax
call fcn.0041bb70
lea ecx, [esp + 0x10]
push ecx
mov dword [esp + 0xac], 4
call fcn.0041bb70
lea edx, [esp + 0x14]
push edx
mov byte [esp + 0xac], 5
call fcn.0041bb70
mov byte [esp + 0xa8], 6
mov eax, dword [0x4d0198]
push eax
push str._sPriceGong.exe
lea edi, [esp + 0x1c]
call fcn.00417b50
mov ecx, dword [esp + 0x1c]
mov edx, dword [esi]
mov edx, dword [edx + 0x58]
add esp, 8
push 0
lea eax, [esp + 0x1c]
push eax
push ecx
mov ecx, esi
call edx
test al, al
je 0x482bc0
mov eax, dword [esp + 0x14]
add dword [0x4cfcfc], ebx
push eax
push 0x4ae144
lea edi, [esp + 0x18]
call fcn.00417b50
mov esi, dword [esi + 0x3c8]
add esp, 8
test esi, esi
je 0x482b00
mov edi, esi
call fcn.004849c0
push 0x44
lea ecx, [esp + 0x40]
push 0
push ecx
call fcn.0048a470
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov dword [esp + 0x3c], 0x44
cmp dword [eax - 4], ebx
jle 0x482b46
mov edx, dword [eax - 0xc]
push edx
lea eax, [esp + 0x14]
push eax
call fcn.00416ed0
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x40]
push edx
push 0
push 0
push 0
push 0
push 0
push 0
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x482b8d
mov eax, dword [esp + 0x20]
push 0x2710
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [esp + 0x24]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
call esi
mov edx, dword [esp + 0x20]
push edx
call esi
mov eax, dword [esp + 0x10]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.004883c5
add esp, 8
test eax, eax
js 0x482c5f
mov ecx, dword [esp + 0x10]
cmp eax, dword [ecx - 8]
jg 0x482c5f
mov dword [ecx - 0xc], eax
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [esp + 0xa8], 5
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x482be8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xa8], 4
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x482c10
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0xa8], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x482c3b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0xa0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x88]
xor ecx, esp
call fcn.00486a8b
mov esp, ebp
pop ebp
ret
push 0x80070057
call fcn.004170a0
int3