Function at 0x4089cd
Capabilities:
Create directory
Create thread
Delete directory
Enumerate processes
Get disk size
Terminate process

Disassembly:
push 0xd5c
mov eax, 0x4b3cab
call fcn.004989ce
mov esi, ecx
lea ecx, [ebp - 0xd2c]
mov dword [ebp - 0xd30], esi
call fcn.0040d18f
xor edi, edi
mov dword [ebp - 4], edi
mov eax, dword [ebp - 0xd2c]
mov eax, dword [eax - 0xc]
xor ecx, ecx
cmp eax, edi
setne cl
lea edx, [ebp - 0x640]
push edx
mov dword [ebp - 0xd38], ecx
mov ecx, dword [esi + 0x3b4]
mov eax, dword [ecx]
call dword [eax + 0x28]
mov ebx, dword [eax]
lea ecx, [ebp - 0x640]
call fcn.0041a0f0
xor eax, eax
push 0x206
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push edi
push eax
call fcn.0049ac70
add esp, 0xc
push 0x4be374
push ebx
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
xor eax, eax
push 7
pop ebx
mov word [ebp - 0x43c], ax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x43c]
mov dword [ebp - 0x428], ebx
mov dword [ebp - 0x42c], edi
call fcn.00401ab5
mov byte [ebp - 4], 1
cmp dword [ebp - 0x42c], 3
jb 0x409a00
cmp dword [ebp - 0x428], 8
mov eax, dword [ebp - 0x43c]
jae 0x408ab7
lea eax, [ebp - 0x43c]
cmp word [eax + 2], 0x3a
jne 0x409a00
mov eax, dword [0x4dec8c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x408aca
sub eax, edx
sar eax, 1
push eax
push 0xffffffffffffffff
push dword [0x4dec8c]
lea ecx, [ebp - 0x43c]
call fcn.0040bd68
cmp eax, 0xffffffff
jne 0x408b32
push dword [0x4dec8c]
lea ecx, [ebp - 0x43c]
call fcn.00403f11
push 1
push 0xffffffffffffffff
push 0x4be818
lea ecx, [ebp - 0x43c]
call fcn.0040bd68
mov ecx, dword [ebp - 0x42c]
dec ecx
cmp eax, ecx
je 0x408b32
push 0x4be818
lea ecx, [ebp - 0x43c]
call fcn.00403f11
mov ecx, dword [esi + 0x3bc]
mov eax, dword [ecx]
push 1
call dword [eax + 0x134]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [ebp - 0x428], 8
mov ecx, dword [ebp - 0x43c]
jae 0x408b5e
lea ecx, [ebp - 0x43c]
call fcn.004032d6
cmp eax, edi
je 0x408d5f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xd24], eax
cmp eax, edi
je 0x408d5f
cmp eax, 0xb7
je 0x408d5f
xor eax, eax
push str.MESSAGEBOX_INVALID_DIR_TEXT
lea ecx, [ebp - 0x4ac]
mov dword [ebp - 0x498], ebx
mov dword [ebp - 0x49c], edi
mov word [ebp - 0x4ac], ax
call fcn.00401ab5
mov byte [ebp - 4], 8
call fcn.004012c0
push eax
lea ecx, [ebp - 0x4ac]
lea esi, [ebp - 0x458]
call fcn.00401224
cmp dword [eax + 0x14], 8
jb 0x408bd2
mov eax, dword [eax]
mov edx, eax
push 0xffffffffffffffff
lea eax, [ebp - 0x640]
call fcn.0041a0d0
push edi
push 1
lea ecx, [ebp - 0x458]
call fcn.00401adc
push edi
push 1
lea ecx, [ebp - 0x4ac]
call fcn.00401adc
lea eax, [ebp - 0x5b4]
mov dword [ebp - 0x5b8], eax
xor eax, eax
mov word [ebp - 0x5b4], ax
push dword [ebp - 0xd24]
lea eax, [ebp - 0x5b8]
push str.__d_
push eax
mov byte [ebp - 4], 0xb
call fcn.0041a860
add esp, 0xc
xor eax, eax
push 0x4c0740
lea ecx, [ebp - 0x490]
mov dword [ebp - 0x47c], ebx
mov dword [ebp - 0x480], edi
mov word [ebp - 0x490], ax
call fcn.00401ab5
mov byte [ebp - 4], 0xc
xor eax, eax
push str.MESSAGEBOX_CAPITON
lea ecx, [ebp - 0x4ac]
mov dword [ebp - 0x498], ebx
mov dword [ebp - 0x49c], edi
mov word [ebp - 0x4ac], ax
call fcn.00401ab5
mov byte [ebp - 4], 0xd
call fcn.004012c0
push eax
lea ecx, [ebp - 0x490]
lea esi, [ebp - 0x474]
call fcn.00401224
mov edi, eax
mov byte [ebp - 4], 0xe
call fcn.004012c0
push eax
lea ecx, [ebp - 0x4ac]
lea esi, [ebp - 0x458]
call fcn.00401224
mov esi, eax
lea eax, [ebp - 0x5b8]
push eax
lea eax, [ebp - 0x6c8]
lea edx, [ebp - 0x640]
call fcn.0041a370
mov byte [ebp - 4], 0x10
cmp dword [edi + 0x14], 8
jb 0x408cdc
mov edi, dword [edi]
cmp dword [esi + 0x14], 8
jb 0x408ce6
mov ecx, dword [esi]
jmp 0x408ce8
mov ecx, esi
mov ebx, dword [eax]
mov eax, dword [ebp - 0xd30]
push 0
push edi
mov edi, dword [eax + 4]
push 0x10
call fcn.0040d4ce
add esp, 0xc
lea ecx, [ebp - 0x6c8]
call fcn.0041a0f0
xor esi, esi
xor edi, edi
push esi
inc edi
push edi
lea ecx, [ebp - 0x458]
call fcn.00401adc
push esi
push edi
lea ecx, [ebp - 0x474]
call fcn.00401adc
push esi
push edi
lea ecx, [ebp - 0x4ac]
call fcn.00401adc
push esi
push edi
lea ecx, [ebp - 0x490]
call fcn.00401adc
lea ecx, [ebp - 0x5b8]
call fcn.0041a0f0
lea ecx, [ebp - 0x640]
call fcn.0041a0f0
jmp 0x409b5e
mov dword [ebp - 0x498], 0xf
mov dword [ebp - 0x49c], edi
mov byte [ebp - 0x4ac], 0
mov byte [ebp - 4], 0x11
cmp dword [ebp - 0x428], 8
mov eax, dword [ebp - 0x43c]
jae 0x408d8f
lea eax, [ebp - 0x43c]
push eax
lea esi, [ebp - 0x4ac]
call fcn.004034b2
cmp dword [ebp - 0x498], 0x10
mov eax, dword [ebp - 0x4ac]
pop ecx
jae 0x408dad
mov eax, esi
push edi
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, edi
je 0x408f53
cmp eax, 0xb7
je 0x408f53
cmp dword [ebp - 0x428], 8
mov eax, dword [ebp - 0x43c]
jae 0x408de3
lea eax, [ebp - 0x43c]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
xor eax, eax
push 0x4c0740
lea ecx, [ebp - 0x458]
mov dword [ebp - 0x444], ebx
mov dword [ebp - 0x448], edi
mov word [ebp - 0x458], ax
call fcn.00401ab5
mov byte [ebp - 4], 0x12
xor eax, eax
push str.MESSAGEBOX_CAPITON
lea ecx, [ebp - 0x474]
mov dword [ebp - 0x460], ebx
mov dword [ebp - 0x464], edi
mov word [ebp - 0x474], ax
call fcn.00401ab5
mov byte [ebp - 4], 0x13
xor eax, eax
push str.MESSAGEBOX_INST_PATH_ERROR_TEXT2
lea ecx, [ebp - 0x490]
mov dword [ebp - 0x47c], ebx
mov dword [ebp - 0x480], edi
mov word [ebp - 0x490], ax
call fcn.00401ab5
mov byte [ebp - 4], 0x14
call fcn.004012c0
push eax
lea ecx, [ebp - 0x458]
lea esi, [ebp - 0x51c]
call fcn.00401224
mov edi, eax
mov byte [ebp - 4], 0x15
call fcn.004012c0
push eax
lea ecx, [ebp - 0x474]
lea esi, [ebp - 0x4c8]
call fcn.00401224
mov ebx, eax
mov byte [ebp - 4], 0x16
call fcn.004012c0
push eax
lea ecx, [ebp - 0x490]
lea esi, [ebp - 0x4e4]
call fcn.00401224
mov byte [ebp - 4], 0x17
cmp dword [edi + 0x14], 8
jb 0x408ec2
mov edi, dword [edi]
cmp dword [ebx + 0x14], 8
jb 0x408ecc
mov ecx, dword [ebx]
jmp 0x408ece
mov ecx, ebx
cmp dword [eax + 0x14], 8
jb 0x408ed6
mov eax, dword [eax]
push 0
mov ebx, eax
mov eax, dword [ebp - 0xd30]
push edi
mov edi, dword [eax + 4]
push 0x10
call fcn.0040d4ce
add esp, 0xc
xor esi, esi
xor edi, edi
push esi
inc edi
push edi
lea ecx, [ebp - 0x4e4]
call fcn.00401adc
push esi
push edi
lea ecx, [ebp - 0x4c8]
call fcn.00401adc
push esi
push edi
lea ecx, [ebp - 0x51c]
call fcn.00401adc
push esi
push edi
lea ecx, [ebp - 0x490]
call fcn.00401adc
push esi
push edi
lea ecx, [ebp - 0x474]
call fcn.00401adc
push esi
push edi
lea ecx, [ebp - 0x458]
call fcn.00401adc
push esi
push edi
lea ecx, [ebp - 0x4ac]
call fcn.0040197a
jmp 0x409b5e
push edi
push 1
lea ecx, [ebp - 0x4ac]
mov byte [ebp - 4], 1
call fcn.0040197a
cmp dword [ebp - 0xd38], edi
je 0x409125
xor eax, eax
push 0x206
mov word [ebp - 0x420], ax
lea eax, [ebp - 0x41e]
push edi
push eax
call fcn.0049ac70
add esp, 0xc
push dword [0x4dec80]
lea eax, [ebp - 0x420]
push dword [ebp - 0xd2c]
push 0x4c07d4
push eax
call fcn.0040c15f
mov eax, dword [0x4dec80]
mov esi, dword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
or dword [ebp - 0xd24], 0xffffffff
add esp, 0x10
push edi
push 2
mov dword [ebp - 0xd3c], eax
call esi
mov dword [ebp - 0xd28], eax
cmp eax, 0xffffffff
je 0x409125
lea eax, [ebp - 0x8f8]
push eax
push dword [ebp - 0xd28]
mov dword [ebp - 0x8f8], 0x22c
call dword [sym.imp.KERNEL32.dll_Process32FirstW]
test eax, eax
jne 0x409007
push dword [ebp - 0xd28]
jmp 0x40911f
mov ecx, dword [ebp - 0xd3c]
lea eax, [ebp - 0x8d4]
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x409039
cmp dx, di
je 0x409035
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x409039
add ecx, 4
add eax, 4
cmp dx, di
jne 0x409013
xor eax, eax
jmp 0x40903e
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
jne 0x40904e
mov eax, dword [ebp - 0x8f0]
mov dword [ebp - 0xd24], eax
lea eax, [ebp - 0x8f8]
push eax
push dword [ebp - 0xd28]
call dword [sym.imp.KERNEL32.dll_Process32NextW]
test eax, eax
jne 0x409007
push dword [ebp - 0xd28]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0xd24]
push 8
call esi
mov esi, eax
mov dword [ebp - 0xd3c], esi
cmp esi, 0xffffffff
je 0x409125
lea eax, [ebp - 0xd20]
push eax
push esi
mov dword [ebp - 0xd20], 0x428
call dword [sym.imp.KERNEL32.dll_Module32FirstW]
test eax, eax
je 0x40911e
lea ecx, [ebp - 0xb00]
lea eax, [ebp - 0x420]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4090da
cmp dx, di
je 0x4090d6
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4090da
add eax, 4
add ecx, 4
cmp dx, di
jne 0x4090b4
xor eax, eax
jmp 0x4090df
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
jne 0x40911e
push dword [ebp - 0xd3c]
mov esi, dword [ebp - 0xd18]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp esi, edi
jbe 0x409125
push esi
push edi
push 0x100001
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov esi, eax
cmp esi, edi
je 0x40911e
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 1
lea eax, [ebp - 0x43c]
call fcn.0040440c
push eax
push edi
lea eax, [ebp - 0x51c]
push eax
lea ecx, [ebp - 0x43c]
call fcn.0040b1e7
lea ecx, [ebp - 0x500]
push ecx
mov ecx, eax
mov byte [ebp - 4], 0x18
call fcn.0040433f
pop ecx
push edi
push 1
lea ecx, [ebp - 0x51c]
mov byte [ebp - 4], 0x1a
call fcn.00401adc
cmp dword [ebp - 0x4ec], 8
mov eax, dword [ebp - 0x500]
jae 0x409180
lea eax, [ebp - 0x500]
lea ecx, [ebp - 0xd58]
push ecx
lea ecx, [ebp - 0xd68]
push ecx
lea ecx, [ebp - 0xd60]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
jne 0x409288
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xd24], edi
cmp dword [ebp - 0xd38], edi
je 0x40952b
cmp dword [ebp - 0x428], 8
mov eax, dword [ebp - 0x43c]
jae 0x4091d1
lea eax, [ebp - 0x43c]
push dword [ebp - 0xd2c]
push eax
call fcn.00495766
pop ecx
pop ecx
test eax, eax
je 0x40952b
xor eax, eax
push str.MESSAGEBOX_CAPITON
lea ecx, [ebp - 0x474]
mov dword [ebp - 0x460], ebx
mov dword [ebp - 0x464], edi
mov word [ebp - 0x474], ax
call fcn.00401ab5
mov byte [ebp - 4], 0x21
xor eax, eax
push str.MESSAGEBOX_NEW_LOCATION_TEXT
lea ecx, [ebp - 0x458]
mov dword [ebp - 0x444], ebx
mov dword [ebp - 0x448], edi
mov word [ebp - 0x458], ax
call fcn.00401ab5
mov byte [ebp - 4], 0x22
call fcn.004012c0
push eax
lea ecx, [ebp - 0x474]
lea esi, [ebp - 0x4e4]
call fcn.00401224
mov dword [ebp - 0xd24], eax
mov byte [ebp - 4], 0x23
call fcn.004012c0
push eax
lea ecx, [ebp - 0x458]
lea esi, [ebp - 0x4c8]
call fcn.00401224
mov ecx, dword [ebp - 0xd24]
cmp dword [ecx + 0x14], 8
jb 0x409444
mov edx, dword [ecx]
jmp 0x40944a
mov eax, dword [ebp - 0xd54]
mov ecx, dword [ebp - 0xd58]
mov dword [ebp - 0xd44], eax
and dword [ebp - 0xd44], 0x80000000
and eax, 0x7fffffff
mov dword [ebp - 0xd3c], eax
mov dword [ebp - 0xd40], ecx
fild qword [ebp - 0xd40]
mov dword [ebp - 0xd48], edi
fild qword [ebp - 0xd48]
fchs
faddp st(1)
fmul qword [0x4c8e58]
fld1
fcompp
fnstsw ax
test ah, 0x41
jne 0x4091aa
xor eax, eax
push 0x4c0740
lea ecx, [ebp - 0x490]
mov dword [ebp - 0x47c], ebx
mov dword [ebp - 0x480], edi
mov word [ebp - 0x490], ax
call fcn.00401ab5
mov byte [ebp - 4], 0x1b
xor eax, eax
push str.MESSAGEBOX_CAPITON
lea ecx, [ebp - 0x474]
mov dword [ebp - 0x460], ebx
mov dword [ebp - 0x464], edi
mov word [ebp - 0x474], ax
call fcn.00401ab5
mov byte [ebp - 4], 0x1c
xor eax, eax
push 0x4c07ec
lea ecx, [ebp - 0x458]
mov dword [ebp - 0x444], ebx
mov dword [ebp - 0x448], edi
mov word [ebp - 0x458], ax
call fcn.00401ab5
mov byte [ebp - 4], 0x1d
call fcn.004012c0
push eax
lea ecx, [ebp - 0x490]
lea esi, [ebp - 0x4ac]
call fcn.00401224
mov edi, eax
mov byte [ebp - 4], 0x1e
call fcn.004012c0
push eax
lea ecx, [ebp - 0x474]
lea esi, [ebp - 0x4e4]
call fcn.00401224
mov ebx, eax
mov byte [ebp - 4], 0x1f
call fcn.004012c0
push eax
lea ecx, [ebp - 0x458]
lea esi, [ebp - 0x4c8]
call fcn.00401224
mov byte [ebp - 4], 0x20
cmp dword [edi + 0x14], 8
jb 0x4093b8
mov edi, dword [edi]
cmp dword [ebx + 0x14], 8
jb 0x4093c2
mov ecx, dword [ebx]
jmp 0x4093c4
mov ecx, ebx
cmp dword [eax + 0x14], 8
jb 0x4093ce
mov ebx, dword [eax]
jmp 0x4093d0
mov ebx, eax
mov eax, dword [ebp - 0xd30]
push 0
push edi
mov edi, dword [eax + 4]
push 0x10
call fcn.0040d4ce
add esp, 0xc
xor esi, esi
xor edi, edi
push esi
inc edi
push edi
lea ecx, [ebp - 0x4c8]
call fcn.00401adc
push esi
push edi
lea ecx, [ebp - 0x4e4]
call fcn.00401adc
push esi
push edi
lea ecx, [ebp - 0x4ac]
call fcn.00401adc
push esi
push edi
lea ecx, [ebp - 0x458]
call fcn.00401adc
push esi
push edi
lea ecx, [ebp - 0x474]
call fcn.00401adc
push esi
push edi
lea ecx, [ebp - 0x490]
call fcn.00401adc
lea ecx, [ebp - 0x500]
jmp 0x409b57
mov edx, dword [ebp - 0xd24]
cmp dword [eax + 0x14], 8
jb 0x409454
mov ecx, dword [eax]
jmp 0x409456
mov ecx, eax
mov eax, dword [ebp - 0xd30]
mov eax, dword [eax + 4]
push 0x44
push edx
push ecx
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, ebx
sete byte [ebp - 0xd31]
xor esi, esi
push edi
inc esi
push esi
lea ecx, [ebp - 0x4c8]
call fcn.00401adc
push edi
push esi
lea ecx, [ebp - 0x4e4]
call fcn.00401adc
push edi
push esi
lea ecx, [ebp - 0x458]
call fcn.00401adc
push edi
push esi
lea ecx, [ebp - 0x474]
mov byte [ebp - 4], 0x1a
call fcn.00401adc
cmp byte [ebp - 0xd31], 0
je 0x4094bf
mov dword [ebp - 0xd24], esi
jmp 0x40952b
mov esi, dword [0x4dec8c]
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4094ca
sub eax, edx
sar eax, 1
push eax
push 0xffffffffffffffff
push esi
lea ecx, [ebp - 0x43c]
call fcn.0040bd68
cmp eax, 0xffffffff
jne 0x409525
push esi
lea ecx, [ebp - 0x43c]
call fcn.00403f11
push 1
push 0xffffffffffffffff
mov esi, 0x4be818
push esi
lea ecx, [ebp - 0x43c]
call fcn.0040bd68
mov ecx, dword [ebp - 0x42c]
dec ecx
cmp eax, ecx
je 0x409525
push esi
lea ecx, [ebp - 0x43c]
call fcn.00403f11
mov dword [ebp - 0xd24], edi
mov eax, dword [ebp - 0xd30]
mov ecx, dword [eax + 0x3e8]
mov eax, dword [ecx]
lea edx, [ebp - 0x6c8]
push edx
call dword [eax + 0x28]
mov esi, dword [eax]
lea ecx, [ebp - 0x6c8]
call fcn.0041a0f0
mov eax, esi
lea ecx, [eax + 2]
mov dx, word [eax]
add eax, 2
cmp dx, di
jne 0x409555
sub eax, ecx
sar eax, 1
cmp eax, 3
jb 0x409572
mov eax, esi
call fcn.0040af35
jmp 0x409574
xor eax, eax
cmp eax, edi
jne 0x409671
xor eax, eax
push 0x4c0740
lea ecx, [ebp - 0x490]
mov dword [ebp - 0x47c], ebx
mov dword [ebp - 0x480], edi
mov word [ebp - 0x490], ax
call fcn.00401ab5
mov byte [ebp - 4], 0x24
xor eax, eax
push str.MESSAGEBOX_CAPITON
lea ecx, [ebp - 0x474]
mov dword [ebp - 0x460], ebx
mov dword [ebp - 0x464], edi
mov word [ebp - 0x474], ax
call fcn.00401ab5
mov byte [ebp - 4], 0x25
xor eax, eax
push str.MESSAGEBOX_USERDATA_PATH_ERROR_TEXT
lea ecx, [ebp - 0x458]
mov dword [ebp - 0x444], ebx
mov dword [ebp - 0x448], edi
mov word [ebp - 0x458], ax
call fcn.00401ab5
mov byte [ebp - 4], 0x26
call fcn.004012c0
push eax
lea ecx, [ebp - 0x490]
lea esi, [ebp - 0x4ac]
call fcn.00401224
mov edi, eax
mov byte [ebp - 4], 0x27
call fcn.004012c0
push eax
lea ecx, [ebp - 0x474]
lea esi, [ebp - 0x4e4]
call fcn.00401224
mov ebx, eax
mov byte [ebp - 4], 0x28
call fcn.004012c0
push eax
lea ecx, [ebp - 0x458]
lea esi, [ebp - 0x4c8]
call fcn.00401224
mov byte [ebp - 4], 0x29
cmp dword [edi + 0x14], 8
jb 0x409654
mov edi, dword [edi]
cmp dword [ebx + 0x14], 8
jb 0x40965e
mov ecx, dword [ebx]
jmp 0x409660
mov ecx, ebx
cmp dword [eax + 0x14], 8
jb 0x4093ce
mov eax, dword [eax]
jmp 0x4093ce
mov eax, esi
mov dword [ebp - 0xd28], edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x40967c
sub eax, edx
sar eax, 1
je 0x4096c0
mov eax, dword [ebp - 0xd28]
cmp word [esi + eax*2], 0x7f
ja 0x409805
inc dword [ebp - 0xd28]
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4096a9
sub eax, edx
sar eax, 1
cmp dword [ebp - 0xd28], eax
jb 0x40968d
cmp dword [ebp - 0xd24], edi
jne 0x4097d5
cmp dword [ebp - 0x428], 8
mov edi, dword [ebp - 0x43c]
jae 0x4096e1
lea edi, [ebp - 0x43c]
lea eax, [ebp - 0xd3c]
push eax
call fcn.004017e2
lea ecx, [ebp - 0xd44]
push 0x4dec68
push ecx
mov edi, eax
mov byte [ebp - 4], 0x30
call fcn.0040b3a6
pop ecx
pop ecx
mov byte [ebp - 4], 0x32
mov eax, dword [ebp - 0xd3c]
add eax, 0xfffffff0
call fcn.0040112f
lea eax, [ebp - 0xd28]
push eax
mov edi, esi
call fcn.004017e2
mov byte [ebp - 4], 0x33
cmp dword [ebp - 0x428], 8
mov edi, dword [ebp - 0x43c]
jae 0x40973f
lea edi, [ebp - 0x43c]
lea eax, [ebp - 0xd3c]
push eax
call fcn.004017e2
lea ecx, [ebp - 0xd38]
push 0x4dec88
push ecx
mov edi, eax
mov byte [ebp - 4], 0x34
call fcn.0040b3a6
mov eax, dword [ebp - 0xd3c]
pop ecx
pop ecx
add eax, 0xfffffff0
call fcn.0040112f
push str.w__ccsUNICODE
push dword [ebp - 0xd38]
call fcn.00496754
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x4097a5
push dword [ebp - 0xd28]
push 0x4c0914
push esi
call fcn.00496c9e
add esp, 0xc
push esi
call fcn.00496b2e
pop ecx
mov eax, dword [ebp - 0xd38]
add eax, 0xfffffff0
call fcn.0040112f
mov eax, dword [ebp - 0xd28]
add eax, 0xfffffff0
call fcn.0040112f
mov byte [ebp - 4], 0x1a
mov eax, dword [ebp - 0xd44]
add eax, 0xfffffff0
call fcn.0040112f
xor edi, edi
push 0x10
call fcn.0045c9b6
mov ebx, eax
pop ecx
cmp ebx, edi
je 0x4098da
lea esi, [ebx + 4]
mov dword [ebx], 0x10001
call fcn.004039fc
lea esi, [ebx + 0xc]
mov dword [ebx + 8], edi
call fcn.004039fc
jmp 0x4098dc
xor eax, eax
push 0x4c0740
lea ecx, [ebp - 0x490]
mov dword [ebp - 0x47c], ebx
mov dword [ebp - 0x480], edi
mov word [ebp - 0x490], ax
call fcn.00401ab5
mov byte [ebp - 4], 0x2a
xor eax, eax
push str.MESSAGEBOX_CAPITON
lea ecx, [ebp - 0x474]
mov dword [ebp - 0x460], ebx
mov dword [ebp - 0x464], edi
mov word [ebp - 0x474], ax
call fcn.00401ab5
mov byte [ebp - 4], 0x2b
xor eax, eax
push str.MESSAGEBOX_USERDATA_PATH_ERROR_TEXT2
lea ecx, [ebp - 0x458]
mov dword [ebp - 0x444], ebx
mov dword [ebp - 0x448], edi
mov word [ebp - 0x458], ax
call fcn.00401ab5
mov byte [ebp - 4], 0x2c
call fcn.004012c0
push eax
lea ecx, [ebp - 0x490]
lea esi, [ebp - 0x4ac]
call fcn.00401224
mov edi, eax
mov byte [ebp - 4], 0x2d
call fcn.004012c0
push eax
lea ecx, [ebp - 0x474]
lea esi, [ebp - 0x4e4]
call fcn.00401224
mov ebx, eax
mov byte [ebp - 4], 0x2e
call fcn.004012c0
push eax
lea ecx, [ebp - 0x458]
lea esi, [ebp - 0x4c8]
call fcn.00401224
mov byte [ebp - 4], 0x2f
jmp 0x40964c
xor ebx, ebx
cmp dword [ebp - 0xd24], edi
je 0x409911
lea edi, [ebx + 4]
lea eax, [ebp - 0xd2c]
call fcn.0040b209
mov edi, dword [ebp - 0xd30]
add edi, 0x3e4
lea eax, [ebp - 0xd2c]
call fcn.0040b209
mov esi, dword [ebp - 0xd30]
jmp 0x409958
cmp dword [ebp - 0x428], 8
mov eax, dword [ebp - 0x43c]
jae 0x409926
lea eax, [ebp - 0x43c]
push eax
lea eax, [ebx + 4]
push eax
call fcn.00401b25
cmp dword [ebp - 0x428], 8
mov eax, dword [ebp - 0x43c]
jae 0x409945
lea eax, [ebp - 0x43c]
mov esi, dword [ebp - 0xd30]
push eax
lea eax, [esi + 0x3e4]
push eax
call fcn.00401b25
xor edi, edi
push edi
push edi
push ebx
push 0x40da7c
push edi
push edi
mov byte [ebx], 1
call fcn.00497480
add esp, 0x18
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esi + 0x3c0]
xor ebx, ebx
inc ebx
push ebx
call fcn.00423160
lea eax, [ebp - 0x52c]
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 0x52c]
mov dword [ebp - 0xd50], eax
mov eax, dword [ebp - 0x528]
mov dword [ebp - 0xd4c], eax
lea eax, [ebp - 0xd50]
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ClientToScreen]
push ebx
push 0x17c
push 0x244
push dword [ebp - 0xd4c]
push dword [ebp - 0xd50]
push dword [esi + 4]
call dword [sym.imp.USER32.dll_MoveWindow]
mov ecx, dword [esi + 0x3dc]
mov eax, dword [ecx]
push edi
call dword [eax + 0xcc]
push edi
push ebx
lea ecx, [ebp - 0x500]
call fcn.00401adc
push edi
push ebx
jmp 0x409b60
xor eax, eax
push 0x4c0740
lea ecx, [ebp - 0x490]
mov dword [ebp - 0x47c], ebx
mov dword [ebp - 0x480], edi
mov word [ebp - 0x490], ax
call fcn.00401ab5
mov byte [ebp - 4], 2
xor eax, eax
push str.MESSAGEBOX_CAPITON
lea ecx, [ebp - 0x474]
mov dword [ebp - 0x460], ebx
mov dword [ebp - 0x464], edi
mov word [ebp - 0x474], ax
call fcn.00401ab5
mov byte [ebp - 4], 3
xor eax, eax
push str.MESSAGEBOX_INVALID_DIR_TEXT
lea ecx, [ebp - 0x458]
mov dword [ebp - 0x444], ebx
mov dword [ebp - 0x448], edi
mov word [ebp - 0x458], ax
call fcn.00401ab5
mov byte [ebp - 4], 4
call fcn.004012c0
push eax
lea ecx, [ebp - 0x490]
lea esi, [ebp - 0x4e4]
call fcn.00401224
mov edi, eax
mov byte [ebp - 4], 5
call fcn.004012c0
push eax
lea ecx, [ebp - 0x474]
lea esi, [ebp - 0x4c8]
call fcn.00401224
mov dword [ebp - 0xd44], eax
mov byte [ebp - 4], 6
call fcn.004012c0
push eax
lea ecx, [ebp - 0x458]
lea esi, [ebp - 0x51c]
call fcn.00401224
mov byte [ebp - 4], bl
cmp dword [edi + 0x14], 8
jb 0x409adb
mov edi, dword [edi]
mov ecx, dword [ebp - 0xd44]
cmp dword [ecx + 0x14], 8
jb 0x409ae9
mov ecx, dword [ecx]
cmp dword [eax + 0x14], 8
jb 0x409af3
mov ebx, dword [eax]
jmp 0x409af5
mov ebx, eax
mov eax, dword [ebp - 0xd30]
push 0
push edi
mov edi, dword [eax + 4]
push 0x10
call fcn.0040d4ce
add esp, 0xc
xor esi, esi
xor edi, edi
push esi
inc edi
push edi
lea ecx, [ebp - 0x51c]
call fcn.00401adc
push esi
push edi
lea ecx, [ebp - 0x4c8]
call fcn.00401adc
push esi
push edi
lea ecx, [ebp - 0x4e4]
call fcn.00401adc
push esi
push edi
lea ecx, [ebp - 0x458]
call fcn.00401adc
push esi
push edi
lea ecx, [ebp - 0x474]
call fcn.00401adc
lea ecx, [ebp - 0x490]
push esi
push edi
call fcn.00401adc
push esi
push edi
lea ecx, [ebp - 0x43c]
call fcn.00401adc
mov eax, dword [ebp - 0xd2c]
add eax, 0xfffffff0
call fcn.0040112f
call fcn.00498a51
ret