Function at 0x4021e8
Capabilities:
Create directory
Delete directory
Delete file
Extract resource via kernel32 functions
Get common file path
Set current directory
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x453166
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2e8
push esi
lea ecx, [ebp - 0x2c]
call fcn.0040661b
and dword [ebp - 4], 0
push 0x104
lea ecx, [ebp - 0x2c]
call fcn.004074bc
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push str.arcexe
lea ecx, [ebp - 0xf5]
call fcn.0040650c
mov byte [ebp - 4], 1
lea eax, [ebp - 0xf5]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00406fcc
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xf5]
call fcn.004066e8
lea ecx, [ebp - 0x2f4]
call fcn.0040bf12
mov byte [ebp - 4], 2
push str.Dest
lea ecx, [ebp - 0x110]
call fcn.0040650c
mov byte [ebp - 4], 3
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x203]
push eax
lea eax, [ebp - 0x110]
push eax
lea ecx, [ebp - 0x2f4]
call fcn.0040c186
mov ecx, eax
call fcn.0040d295
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0xcc], eax
mov byte [ebp - 4], 4
push dword [ebp - 0xcc]
lea ecx, [ebp - 0x2c]
call fcn.0040676c
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x203]
call fcn.004066e8
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x110]
call fcn.004066e8
lea eax, [ebp - 0x2c]
push eax
call fcn.0040f704
pop ecx
test eax, eax
jne 0x402337
lea ecx, [ebp - 0x2c]
call fcn.00406b07
push eax
push str.Unable_to_create__s_r_n
call fcn.00438778
pop ecx
pop ecx
or dword [ebp - 0xd4], 0xffffffff
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2f4]
call fcn.00401568
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.004066e8
mov eax, dword [ebp - 0xd4]
jmp 0x402fff
lea ecx, [ebp - 0x2c]
call fcn.00406b07
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
test eax, eax
jne 0x40238c
lea ecx, [ebp - 0x2c]
call fcn.00406b07
push eax
push str.Unable_to_set_current_directory__s_r_n
call fcn.00438778
pop ecx
pop ecx
or dword [ebp - 0xdc], 0xffffffff
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2f4]
call fcn.00401568
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.004066e8
mov eax, dword [ebp - 0xdc]
jmp 0x402fff
push 0xa
push 1
call fcn.004060f8
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov dword [ebp - 0x74], eax
push dword [ebp - 0x74]
call fcn.004060f8
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0x8c], eax
push dword [ebp - 0x8c]
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 0x90], eax
push dword [ebp - 0x74]
call fcn.004060f8
push eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 8
jge 0x40242b
push str.Internal_error_1_n
call fcn.00438778
pop ecx
or dword [ebp - 0x94], 0xffffffff
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2f4]
call fcn.00401568
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.004066e8
mov eax, dword [ebp - 0x94]
jmp 0x402fff
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x3c]
lea eax, [ecx + eax - 4]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xec]
cmp dword [eax], 0x1a9a
je 0x402481
push str.Internal_error_2_n
call fcn.00438778
pop ecx
or dword [ebp - 0xd8], 0xffffffff
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2f4]
call fcn.00401568
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.004066e8
mov eax, dword [ebp - 0xd8]
jmp 0x402fff
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x3c]
lea eax, [ecx + eax - 8]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x3c]
add ecx, dword [eax]
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
cmp dword [eax], 1
jge 0x4024df
push str.Internal_error_21_n
call fcn.00438778
pop ecx
or dword [ebp - 0xc8], 0xffffffff
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2f4]
call fcn.00401568
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.004066e8
mov eax, dword [ebp - 0xc8]
jmp 0x402fff
push 0xc
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + eax + 4], 1
je 0x402527
push str.Internal_error_22_n
call fcn.00438778
pop ecx
or dword [ebp - 0xa8], 0xffffffff
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2f4]
call fcn.00401568
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.004066e8
mov eax, dword [ebp - 0xa8]
jmp 0x402fff
push 0xc
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x3c]
add edx, dword [ecx + eax + 8]
mov dword [ebp - 0x34], edx
push 0xc
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + eax + 0xc]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x20]
mov eax, dword [eax - 0xc]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0x42c
je 0x402597
push str.Internal_error_3_n
call fcn.00438778
pop ecx
or dword [ebp - 0xe8], 0xffffffff
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2f4]
call fcn.00401568
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.004066e8
mov eax, dword [ebp - 0xe8]
jmp 0x402fff
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x20]
mov eax, dword [eax - 8]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x20]
mov eax, dword [eax - 4]
mov dword [ebp - 0x58], eax
lea ecx, [ebp - 0x17c]
call fcn.0040bfd3
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x278]
call fcn.0040bfd3
mov byte [ebp - 4], 6
push 0x456524
lea ecx, [ebp - 0x12b]
call fcn.0040650c
mov byte [ebp - 4], 7
push 0
push 0
lea eax, [ebp - 0x12b]
push eax
lea ecx, [ebp - 0x1ac]
call fcn.0040d3e1
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x12b]
call fcn.004066e8
push 0x456524
lea ecx, [ebp - 0x134]
call fcn.0040650c
mov byte [ebp - 4], 0xa
push 0
push 0
lea eax, [ebp - 0x134]
push eax
lea ecx, [ebp - 0x194]
call fcn.0040d3e1
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x134]
call fcn.004066e8
call fcn.00411548
lea ecx, [ebp - 0x6c]
call fcn.0040d36e
mov byte [ebp - 4], 0xd
push str..mbk
lea eax, [ebp - 0x20c]
push eax
lea ecx, [ebp - 0x1ac]
call fcn.0040d93b
mov ecx, eax
call fcn.00406c9e
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0xd0], eax
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0xd0]
call fcn.00406b07
push eax
lea ecx, [ebp - 0x122]
call fcn.0040650c
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x122]
push eax
lea ecx, [ebp - 0x6c]
call fcn.0040e8f6
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x122]
call fcn.004066e8
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x20c]
call fcn.004066e8
mov eax, dword [ebp - 0x58]
sub eax, dword [ebp - 0x70]
push eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x70]
push eax
lea ecx, [ebp - 0x6c]
call fcn.0040f387
lea ecx, [ebp - 0x6c]
call fcn.0040d8a9
push 1
push str..mbk
lea eax, [ebp - 0x1f1]
push eax
lea ecx, [ebp - 0x1ac]
call fcn.0040d93b
mov ecx, eax
call fcn.00406c9e
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0xe0], eax
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0xe0]
call fcn.00406b07
push eax
call fcn.00410c91
pop ecx
pop ecx
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x1f1]
call fcn.004066e8
push str..mbk
lea eax, [ebp - 0x215]
push eax
lea ecx, [ebp - 0x194]
call fcn.0040d93b
mov ecx, eax
call fcn.00406c9e
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x88], eax
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x88]
call fcn.00406b07
push eax
lea ecx, [ebp - 0x107]
call fcn.0040650c
mov byte [ebp - 4], 0x12
lea eax, [ebp - 0x107]
push eax
lea ecx, [ebp - 0x6c]
call fcn.0040e8f6
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x107]
call fcn.004066e8
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x215]
call fcn.004066e8
mov eax, dword [ebp - 0x20]
sub eax, 8
sub eax, dword [ebp - 0x58]
push eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x58]
push eax
lea ecx, [ebp - 0x6c]
call fcn.0040f387
lea ecx, [ebp - 0x6c]
call fcn.0040d8a9
push 1
push str..mbk
lea eax, [ebp - 0x1fa]
push eax
lea ecx, [ebp - 0x194]
call fcn.0040d93b
mov ecx, eax
call fcn.00406c9e
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xa4], eax
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0xa4]
call fcn.00406b07
push eax
call fcn.00410c91
pop ecx
pop ecx
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x1fa]
call fcn.004066e8
lea ecx, [ebp - 0x1e8]
call fcn.00410532
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x23c]
call fcn.00410532
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x1ac]
call fcn.0040d844
push eax
lea ecx, [ebp - 0x1e8]
call fcn.004109ff
lea ecx, [ebp - 0x194]
call fcn.0040d844
push eax
lea ecx, [ebp - 0x23c]
call fcn.004109ff
lea ecx, [ebp - 0x1e8]
call fcn.004109ee
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x18], 4
and dword [ebp - 0x5c], 0
jmp 0x4028a7
mov eax, dword [ebp - 0x5c]
inc eax
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
cmp eax, dword [ebp - 0x30]
jge 0x40290e
lea ecx, [ebp - 0x1e8]
call fcn.004109ee
mov ecx, dword [ebp - 0x18]
mov eax, dword [eax + ecx]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0x18]
add eax, 4
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x1e8]
call fcn.004109ee
add eax, dword [ebp - 0x18]
push eax
call fcn.00438827
pop ecx
push 0
lea ecx, [ebp - 0x1e8]
call fcn.004109ee
add eax, dword [ebp - 0x18]
push eax
lea ecx, [ebp - 0x17c]
call fcn.0040c37b
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0xac]
mov dword [ebp - 0x18], eax
jmp 0x4028a0
lea ecx, [ebp - 0x48]
call fcn.0040661b
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x23c]
call fcn.004109ee
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x18], 4
push str.Unarchiving..._n
call fcn.00438778
pop ecx
mov eax, dword [ebp - 0x30]
cdq
push edx
push eax
lea ecx, [ebp - 0x290]
call fcn.00411598
mov byte [ebp - 4], 0x17
and dword [ebp - 0x60], 0
jmp 0x40295e
mov eax, dword [ebp - 0x60]
inc eax
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x30]
jge 0x402b7d
push 0
push 1
lea ecx, [ebp - 0x290]
call fcn.0041166b
lea ecx, [ebp - 0x23c]
call fcn.004109ee
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x18]
add eax, 0x12c
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
push dword [eax]
lea ecx, [ebp - 0x17c]
call fcn.0040c1db
push eax
lea ecx, [ebp - 0x48]
call fcn.0040676c
mov eax, dword [ebp - 0x10]
add eax, 4
push eax
lea ecx, [ebp - 0x119]
call fcn.0040650c
mov byte [ebp - 4], 0x18
lea eax, [ebp - 0x119]
push eax
lea ecx, [ebp - 0x48]
call fcn.00406fcc
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x119]
call fcn.004066e8
push 0
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x278]
call fcn.0040c2ef
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x10c], 0
je 0x402a31
push str..mbk
lea ecx, [ebp - 0xfe]
call fcn.0040650c
mov byte [ebp - 4], 0x19
lea eax, [ebp - 0xfe]
push eax
lea ecx, [ebp - 0x48]
call fcn.00406fcc
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0xfe]
call fcn.004066e8
lea ecx, [ebp - 0x54]
call fcn.0040d36e
mov byte [ebp - 4], 0x1a
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x54]
call fcn.0040e8f6
lea ecx, [ebp - 0x54]
call fcn.0040ea5b
test eax, eax
je 0x402b6c
mov eax, dword [ebp - 0x10]
push dword [eax + 0x108]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x34]
add ecx, dword [eax + 0x104]
push ecx
lea ecx, [ebp - 0x54]
call fcn.0040f387
mov eax, dword [ebp - 0x10]
add eax, 0x120
push eax
mov eax, dword [ebp - 0x10]
add eax, 0x118
push eax
mov eax, dword [ebp - 0x10]
add eax, 0x110
push eax
lea ecx, [ebp - 0x54]
call fcn.0040de33
push eax
call dword [sym.imp.KERNEL32.dll_SetFileTime]
lea ecx, [ebp - 0x54]
call fcn.0040d8a9
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x10c], 0
je 0x402ac7
push 1
lea ecx, [ebp - 0x48]
call fcn.00406b07
push eax
call fcn.00410c91
pop ecx
pop ecx
mov eax, dword [ebp - 0x10]
push dword [eax]
lea ecx, [ebp - 0x17c]
call fcn.0040c1db
push eax
lea ecx, [ebp - 0x48]
call fcn.0040676c
mov eax, dword [ebp - 0x10]
add eax, 4
push eax
lea ecx, [ebp - 0x13d]
call fcn.0040650c
mov byte [ebp - 4], 0x1b
lea eax, [ebp - 0x13d]
push eax
lea ecx, [ebp - 0x48]
call fcn.00406fcc
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x13d]
call fcn.004066e8
push 0
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x54]
call fcn.0040e424
mov eax, dword [ebp - 0x10]
add eax, 0x120
push eax
mov eax, dword [ebp - 0x10]
add eax, 0x118
push eax
mov eax, dword [ebp - 0x10]
add eax, 0x110
push eax
lea ecx, [ebp - 0x54]
call fcn.0040de33
push eax
call dword [sym.imp.KERNEL32.dll_SetFileTime]
lea ecx, [ebp - 0x54]
call fcn.0040d8a9
mov eax, dword [ebp - 0x10]
push dword [eax + 0x128]
lea ecx, [ebp - 0x48]
call fcn.00406b07
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x54]
call fcn.0040d4ce
jmp 0x402957
lea ecx, [ebp - 0x1e8]
call fcn.00410651
lea ecx, [ebp - 0x23c]
call fcn.00410651
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x290]
call fcn.00411600
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x48]
call fcn.004066e8
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x23c]
call fcn.004105bb
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x1e8]
call fcn.004105bb
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x6c]
call fcn.0040d4ce
call fcn.004114f8
mov eax, dword [ebp - 0x14]
cmp dword [eax], 1
jle 0x402f9b
push 0xc
pop eax
shl eax, 0
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + eax + 4], 2
je 0x402c93
push 0xc
pop eax
shl eax, 0
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + eax + 4], 3
je 0x402c93
push 0xc
pop eax
shl eax, 0
mov ecx, dword [ebp - 0x14]
push dword [ecx + eax + 4]
push str.Internal_error_4__ld_n
call fcn.00438778
pop ecx
pop ecx
or dword [ebp - 0xb4], 0xffffffff
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x194]
call fcn.0040d538
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x1ac]
call fcn.0040d538
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x278]
call fcn.0040c075
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x17c]
call fcn.0040c075
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2f4]
call fcn.00401568
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.004066e8
mov eax, dword [ebp - 0xb4]
jmp 0x402fff
push 0xc
pop eax
shl eax, 0
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x3c]
add edx, dword [ecx + eax + 8]
mov dword [ebp - 0xbc], edx
push 0xc
pop eax
shl eax, 0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + eax + 0xc]
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x84]
call fcn.0040661b
mov byte [ebp - 4], 0x1c
push dword [ebp - 0x20]
push dword [ebp - 0xbc]
lea ecx, [ebp - 0x84]
call fcn.00408586
lea ecx, [ebp - 0x84]
call fcn.004084b1
test eax, eax
je 0x402f8c
lea ecx, [ebp - 0x84]
call fcn.00406b07
push eax
push str.Running:__s_r_n
call fcn.00438778
pop ecx
pop ecx
push 0xc
pop eax
shl eax, 0
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + eax + 4], 3
jne 0x402d20
mov dword [ebp - 0x78], 1
jmp 0x402d24
and dword [ebp - 0x78], 0
push 0
push dword [ebp - 0x78]
push 1
lea eax, [ebp - 0x84]
push eax
call fcn.0040173a
add esp, 0x10
push 0xc
pop eax
shl eax, 0
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + eax + 4], 3
jne 0x402f8c
push str.Deleting_temp_files..._n
call fcn.00438778
pop ecx
lea ecx, [ebp - 0x278]
call fcn.00425dc8
mov esi, eax
lea ecx, [ebp - 0x17c]
call fcn.00425dc8
add eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0x1c4]
call fcn.00411598
mov byte [ebp - 4], 0x1d
and dword [ebp - 0x38], 0
jmp 0x402d92
mov eax, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x38], eax
lea ecx, [ebp - 0x278]
call fcn.00425dc8
cmp dword [ebp - 0x38], eax
jge 0x402e41
push 0
push 1
lea ecx, [ebp - 0x1c4]
call fcn.0041166b
push dword [ebp - 0x38]
lea ecx, [ebp - 0x278]
call fcn.0040c1db
mov ecx, eax
call fcn.00406b07
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x402e3c
push 0
push 0x3e8
call dword [sym.imp.KERNEL32.dll_SleepEx]
push dword [ebp - 0x38]
lea ecx, [ebp - 0x278]
call fcn.0040c1db
mov ecx, eax
call fcn.00406b07
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x402e3c
call fcn.00402163
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push dword [ebp - 0x38]
lea ecx, [ebp - 0x278]
call fcn.0040c1db
mov ecx, eax
call fcn.00406b07
push eax
push str._nUnable_to_remove_file__s__last_error_ld__n
call fcn.00438778
add esp, 0xc
lea ecx, [ebp - 0x1c4]
call fcn.00411756
jmp 0x402d8b
lea ecx, [ebp - 0x17c]
call fcn.00425dc8
dec eax
mov dword [ebp - 0x1c], eax
jmp 0x402e59
mov eax, dword [ebp - 0x1c]
dec eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jl 0x402f7d
push 0
push 1
lea ecx, [ebp - 0x1c4]
call fcn.0041166b
push 0
push 0
push 0x4565b0
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x17c]
call fcn.0040c1db
mov ecx, eax
call fcn.00406b07
push eax
call fcn.00407c7b
add esp, 0x10
test eax, eax
je 0x402eb8
push 0
push 2
push 0
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x17c]
call fcn.0040c1db
mov ecx, eax
call fcn.00408690
push 0
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x17c]
call fcn.0040c1db
mov ecx, eax
call fcn.00408473
movsx eax, al
cmp eax, 0x5c
jne 0x402f05
push 0
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x17c]
call fcn.0040c1db
mov ecx, eax
call fcn.004084b1
dec eax
push eax
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x17c]
call fcn.0040c1db
mov ecx, eax
call fcn.004074fe
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x17c]
call fcn.0040c1db
mov ecx, eax
call fcn.004084b1
test eax, eax
je 0x402f78
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x17c]
call fcn.0040c1db
mov ecx, eax
call fcn.00406b07
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
test eax, eax
jne 0x402f78
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x17c]
call fcn.0040c1db
mov ecx, eax
call fcn.00406b07
push eax
push str._nUnable_to_remove_directory__s__last_error_ld__n
call fcn.00438778
add esp, 0xc
call fcn.00402163
lea ecx, [ebp - 0x1c4]
call fcn.00411756
jmp 0x402e52
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x1c4]
call fcn.00411600
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x84]
call fcn.004066e8
and dword [ebp - 0xc4], 0
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x194]
call fcn.0040d538
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x1ac]
call fcn.0040d538
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x278]
call fcn.0040c075
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x17c]
call fcn.0040c075
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2f4]
call fcn.00401568
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.004066e8
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret