Function at 0x409640
Capabilities:
Get common file path
Set file attributes

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x55f8
call fcn.0040ece0
push esi
push edi
mov edi, ecx
lea ecx, [ebp - 0xcc]
mov dword [ebp - 4], edi
call fcn.0041e614
mov eax, dword [0x42b8a0]
or dword [ebp - 0xc0], 0xffffffff
xor esi, esi
lea ecx, [ebp - 0xbc]
push esi
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xcc], vtable.CFileException.0
mov dword [ebp - 0xc4], esi
call fcn.0041c71e
mov ecx, edi
call fcn.0040b2b5
test eax, eax
push esi
jne 0x4096b8
push str.Error:_1
push str.Cannot_Open_File
mov ecx, edi
call fcn.0041a9fd
mov ecx, edi
call fcn.0041d22f
jmp 0x40ad2e
push dword [0x42b26c]
mov esi, 0x42f818
mov ecx, esi
call fcn.0041e29e
lea eax, [ebp - 0xd8]
push 7
push eax
mov ecx, esi
call fcn.0041e219
test eax, eax
je 0x40ad27
push ebx
push 4
pop ebx
xor eax, eax
lea edi, [ebp - 0x30]
stosd dword es:[edi], eax
and byte [ebp - 0xd0], 0
push 7
stosd dword es:[edi], eax
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.0041e219
and byte [ebp - 0x28], 0
lea eax, [ebp - 0x30]
push 7
push eax
push 0x42b390
call fcn.0040ef00
add esp, 0xc
test eax, eax
jne 0x409782
push ebx
push 0x42b268
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42b264
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42d6b0
mov ecx, esi
call fcn.0041e219
and dword [ebp - 0x4c], 0
lea eax, [ebp - 0x4c]
push ebx
push eax
mov ecx, esi
call fcn.0041e219
push 0
push 0x42d6b4
push dword [ebp - 0x4c]
mov edi, 0x42f818
push edi
call fcn.0040d9be
add esp, 0x10
cmp eax, 1
jne 0x409787
push eax
call fcn.0040777d
push dword [ebp - 4]
call fcn.00407787
pop ecx
pop ecx
jmp 0x409787
mov edi, 0x42f818
lea eax, [ebp - 0x30]
push 7
push eax
push str._WaV_
call fcn.0040ef00
add esp, 0xc
test eax, eax
jne 0x4097b8
push edi
call fcn.00406abe
pop ecx
mov ecx, dword [0x42f86c]
inc dword [0x42f86c]
mov dword [ecx*4 + 0x42f3ac], eax
lea eax, [ebp - 0x30]
push 7
push eax
push 0x42b3a0
call fcn.0040ef00
add esp, 0xc
test eax, eax
jne 0x40993d
push ebx
push 0x42f6f0
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42f6f8
mov ecx, esi
call fcn.0041e219
cmp dword [0x42f6f8], 0
je 0x409816
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x6c]
push edi
push eax
call fcn.0040b79f
push eax
mov ecx, 0x42f6f4
call fcn.0041c6ce
lea ecx, [ebp - 0x6c]
call fcn.0041c5e1
push ebx
push 0x42f700
mov ecx, esi
call fcn.0041e219
cmp dword [0x42f700], 0
je 0x40984c
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x70]
push edi
push eax
call fcn.0040b79f
push eax
mov ecx, 0x42f6fc
call fcn.0041c6ce
lea ecx, [ebp - 0x70]
call fcn.0041c5e1
push ebx
push 0x42f708
mov ecx, esi
call fcn.0041e219
cmp dword [0x42f708], 0
je 0x409882
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x80]
push edi
push eax
call fcn.0040b79f
push eax
mov ecx, 0x42f704
call fcn.0041c6ce
lea ecx, [ebp - 0x80]
call fcn.0041c5e1
push ebx
push 0x42f6e0
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42f6e8
mov ecx, esi
call fcn.0041e219
cmp dword [0x42f6e8], 0
je 0x4098cb
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x88]
push edi
push eax
call fcn.0040b79f
push eax
mov ecx, 0x42f6e4
call fcn.0041c6ce
lea ecx, [ebp - 0x88]
call fcn.0041c5e1
push ebx
push 0x42f6d4
mov ecx, esi
call fcn.0041e219
cmp dword [0x42f6d4], 0
je 0x409907
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x90]
push edi
push eax
call fcn.0040b79f
push eax
mov ecx, 0x42f6d0
call fcn.0041c6ce
lea ecx, [ebp - 0x90]
call fcn.0041c5e1
push ebx
push 0x42f6dc
mov ecx, esi
call fcn.0041e219
cmp dword [0x42f6dc], 0
je 0x40993d
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x7c]
push edi
push eax
call fcn.0040b79f
push eax
mov ecx, 0x42f6d8
call fcn.0041c6ce
lea ecx, [ebp - 0x7c]
call fcn.0041c5e1
lea eax, [ebp - 0x30]
push 7
push eax
push 0x42b3a8
call fcn.0040ef00
add esp, 0xc
test eax, eax
jne 0x409ac9
and dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
push ebx
push eax
mov ecx, esi
call fcn.0041e219
xor eax, eax
push eax
push eax
push eax
push edi
push dword [ebp - 0x10]
call fcn.0040d8e1
mov ecx, dword [ebp - 4]
add esp, 0x14
add ecx, 0x14c
push eax
call fcn.0041fbf4
push ebx
push 0x42d36c
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42d368
mov ecx, esi
call fcn.0041e219
cmp dword [0x42d36c], 1
jne 0x4099f6
mov eax, dword [ebp - 4]
and dword [ebp - 0x44], 0
add eax, 0x120
mov dword [ebp - 0x48], vtable.CRgn.0
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.00408522
lea eax, [ebp - 0x48]
pop ecx
neg eax
sbb eax, eax
pop ecx
and eax, dword [ebp - 0x44]
push 1
push eax
mov eax, dword [ebp - 4]
push dword [eax + 0x1c]
call dword [sym.imp.USER32.dll_SetWindowRgn]
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x48], vtable.CGdiObject.0
call fcn.0041fc4b
jmp 0x409a8c
push ebx
push 0x42d364
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42d360
mov ecx, esi
call fcn.0041e219
mov eax, dword [ebp - 4]
add eax, 0x14c
test eax, eax
je 0x409a27
mov eax, dword [ebp - 4]
add eax, 0x14c
mov eax, dword [eax + 4]
push dword [0x42d360]
push dword [0x42d364]
push eax
call fcn.00403083
add esp, 0xc
cmp dword [0x42d368], 1
mov dword [ebp - 8], eax
jne 0x409a7b
mov eax, dword [ebp - 4]
add eax, 0x14c
test eax, eax
je 0x409a57
mov eax, dword [eax + 4]
push dword [0x42d360]
push dword [0x42d364]
push eax
call fcn.00403083
add esp, 0xc
push eax
mov eax, dword [ebp - 4]
lea ecx, [eax + 0x120]
call fcn.0041fbf4
mov eax, dword [ebp - 4]
push 1
push dword [ebp - 8]
push dword [eax + 0x1c]
call dword [sym.imp.USER32.dll_SetWindowRgn]
lea eax, [ebp - 0x120]
push eax
mov eax, dword [ebp - 4]
push 0x18
push dword [eax + 0x150]
call dword [sym.imp.GDI32.dll_GetObjectA]
push 2
mov ecx, dword [ebp - 4]
push dword [ebp - 0x118]
xor eax, eax
push dword [ebp - 0x11c]
push eax
push eax
push eax
call fcn.0041bcb8
mov dword [0x42f858], 1
lea eax, [ebp - 0x30]
push 7
push eax
push 0x42b3b0
call fcn.0040ef00
add esp, 0xc
test eax, eax
jne 0x409bb5
mov al, byte [0x42f88c]
push 0x18
mov byte [ebp - 0x314], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x313]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
push ebx
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x10]
push eax
mov ecx, esi
call fcn.0041e219
push dword [ebp - 0x10]
lea eax, [ebp - 0x314]
mov ecx, esi
push eax
call fcn.0041e219
lea eax, [ebp - 8]
push ebx
push eax
mov ecx, esi
call fcn.0041e219
lea eax, [ebp - 0xc]
push ebx
push eax
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42b33c
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42f838
mov ecx, esi
call fcn.0041e219
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x314]
push eax
call fcn.0041bc21
cmp dword [0x42f858], 0
jne 0x409bb0
mov edi, dword [ebp - 4]
push 0x20
push dword [ebp - 8]
mov ecx, edi
push 0
call fcn.0041bbbf
push 0x20
mov ecx, edi
push dword [ebp - 0xc]
push 0
call fcn.0041bbf0
push 0x20
push 0
push 0x40000
mov ecx, edi
call fcn.0041bbbf
push 0x20
push 0x400000
push 0
mov ecx, edi
call fcn.0041bbbf
mov edi, 0x42f818
lea eax, [ebp - 0x30]
push 7
push eax
push 0x42b3b8
call fcn.0040ef00
add esp, 0xc
test eax, eax
jne 0x409c25
lea eax, [ebp - 0x24]
push 8
push eax
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42e68c
mov ecx, esi
call fcn.0041e219
cmp dword [0x42f858], 0
jne 0x409c25
mov eax, dword [ebp - 4]
test eax, eax
je 0x409bf9
mov eax, dword [eax + 0x1c]
lea ecx, [ebp - 0x108]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
push 2
mov ecx, dword [ebp - 4]
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x104]
push dword [ebp - 0x108]
push 0
call fcn.0041bcb8
lea eax, [ebp - 0x30]
push 7
push eax
push 0x42b3c0
call fcn.0040ef00
add esp, 0xc
test eax, eax
jne 0x409e01
push ebx
push 0x42e710
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42e714
mov ecx, esi
call fcn.0041e219
and dword [ebp - 0xc], 0
cmp dword [0x42e714], 0
jle 0x409cb3
mov dword [ebp - 8], 0x42e6c0
and dword [ebp - 0x10], 0
lea eax, [ebp - 0x10]
push ebx
push eax
mov ecx, esi
call fcn.0041e219
push edi
call fcn.0040d5c9
mov dword [ebp - 0x34], eax
add eax, 0x210
push eax
call fcn.0040d861
pop ecx
pop ecx
mov ecx, dword [ebp - 8]
push dword [ebp - 0x34]
mov dword [ecx], eax
call dword [sym.imp.GDI32.dll_DeleteObject]
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
add dword [ebp - 8], ebx
cmp eax, dword [0x42e714]
jl 0x409c6e
push ebx
push 0x42f398
mov ecx, esi
call fcn.0041e219
and dword [ebp - 8], 0
cmp dword [0x42f398], 0
jle 0x409db9
mov dword [ebp - 0xc], 0x42ed58
mov edi, dword [ebp - 0xc]
push ebx
mov ecx, esi
lea eax, [edi - 0x320]
push eax
call fcn.0041e219
push ebx
push edi
mov ecx, esi
call fcn.0041e219
mov al, byte [0x42f890]
mov ecx, 0x9c3
mov byte [ebp - 0x2ee8], al
xor eax, eax
lea edi, [ebp - 0x2ee7]
and dword [ebp - 0x38], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x38]
push ebx
push eax
mov ecx, esi
call fcn.0041e219
push dword [ebp - 0x38]
lea eax, [ebp - 0x2ee8]
mov ecx, esi
push eax
call fcn.0041e219
lea eax, [ebp - 0x2ee8]
push eax
mov eax, dword [ebp - 0xc]
lea ecx, [eax - 0x640]
call fcn.0041c71e
lea edi, [ebp - 0x2ee8]
or ecx, 0xffffffff
xor eax, eax
and dword [ebp - 0x38], 0
repne scasb al, byte es:[edi]
not ecx
mov edx, ecx
lea edi, [ebp - 0x2ee8]
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
push ebx
and ecx, 3
rep stosb byte es:[edi], al
lea eax, [ebp - 0x38]
mov ecx, esi
push eax
call fcn.0041e219
push dword [ebp - 0x38]
lea eax, [ebp - 0x2ee8]
mov ecx, esi
push eax
call fcn.0041e219
lea eax, [ebp - 0x2ee8]
push eax
mov eax, dword [ebp - 0xc]
lea ecx, [eax + 0x320]
call fcn.0041c71e
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
add dword [ebp - 0xc], ebx
cmp eax, dword [0x42f398]
jl 0x409cd8
mov edi, 0x42f818
push ebx
push 0x42f39c
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42f3a0
mov ecx, esi
call fcn.0041e219
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x8c]
push edi
push eax
call fcn.0040b79f
push eax
mov ecx, 0x42f3a4
call fcn.0041c6ce
lea ecx, [ebp - 0x8c]
call fcn.0041c5e1
mov ecx, dword [ebp - 4]
call fcn.0040b3f4
lea eax, [ebp - 0x30]
push 7
push eax
push str.__t9_
call fcn.0040ef00
add esp, 0xc
test eax, eax
jne 0x409e49
and dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push ebx
push eax
mov ecx, esi
call fcn.0041e219
push edi
call fcn.0040d5c9
mov edi, eax
lea eax, [edi + 0x210]
push eax
call fcn.0040d861
pop ecx
mov dword [0x42f850], eax
pop ecx
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
lea eax, [ebp - 0x30]
push 7
push eax
push 0x42b3d0
call fcn.0040ef00
add esp, 0xc
test eax, eax
jne 0x409e6e
push 1
push 0x42f85c
mov ecx, esi
call fcn.0041e219
lea eax, [ebp - 0x30]
push 7
push eax
push 0x42b3d8
call fcn.0040ef00
add esp, 0xc
test eax, eax
jne 0x40a1fd
mov al, byte [0x42f894]
push 0x18
mov byte [ebp - 0x184], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x183]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
push ebx
mov dword [ebp - 0x10], eax
mov dword [0x42d350], eax
mov dword [0x42d348], eax
lea eax, [ebp - 0x10]
push eax
mov ecx, esi
call fcn.0041e219
push dword [ebp - 0x10]
lea eax, [ebp - 0x184]
mov ecx, esi
push eax
call fcn.0041e219
lea eax, [ebp - 0x184]
mov ecx, 0x42d32c
push eax
call fcn.0041c71e
lea eax, [ebp - 0x24]
push 0x10
push eax
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42f860
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42f864
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42f3a8
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42d328
mov ecx, esi
call fcn.0041e219
cmp dword [0x42d328], 1
jne 0x409f9b
mov al, byte [0x42f898]
push 0x18
mov byte [ebp - 0x1e8], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x1e7]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
and dword [ebp - 8], 0
push ebx
stosb byte es:[edi], al
lea eax, [ebp - 8]
mov ecx, esi
push eax
call fcn.0041e219
push dword [ebp - 8]
lea eax, [ebp - 0x1e8]
mov ecx, esi
push eax
call fcn.0041e219
lea eax, [ebp - 0x1e8]
mov ecx, 0x42d330
push eax
call fcn.0041c71e
push 1
push 0x42d6ac
mov ecx, esi
call fcn.0041e219
mov eax, dword [0x42f868]
push 1
mov ecx, esi
lea eax, [eax + 0x42f70c]
push eax
call fcn.0041e219
push 0x42f89c
mov ecx, 0x42d2f4
call fcn.0041c71e
mov al, byte [0x42f8a0]
push 0x18
mov byte [ebp - 0x24c], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x24b]
rep stosd dword es:[edi], eax
and dword [ebp - 0x58], 0
push ebx
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x58]
mov ecx, esi
push eax
call fcn.0041e219
push dword [ebp - 0x58]
lea eax, [ebp - 0x24c]
mov ecx, esi
push eax
call fcn.0041e219
lea eax, [ebp - 0x24c]
mov ecx, 0x42d2f4
push eax
call fcn.0041c71e
push ebx
push 0x42d324
mov ecx, esi
call fcn.0041e219
push 1
push 0x42d2e8
mov ecx, esi
call fcn.0041e219
cmp byte [0x42d2e8], 0
jne 0x40a035
push ebx
push 0x42d2ec
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42d2f0
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42d2e4
mov ecx, esi
call fcn.0041e219
mov eax, dword [0x42f844]
push ebx
mov ecx, esi
lea eax, [eax*4 + 0x42e338]
push eax
call fcn.0041e219
push 1
push 0x42d6a0
mov ecx, esi
call fcn.0041e219
cmp byte [0x42d6a0], 3
jne 0x40a0ca
push ebx
push 0x42d6a4
mov ecx, esi
call fcn.0041e219
mov al, byte [0x42f8a4]
mov ecx, 0x9c3
mov byte [ebp - 0x55f8], al
xor eax, eax
lea edi, [ebp - 0x55f7]
and dword [ebp - 0x50], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x50]
push ebx
push eax
mov ecx, esi
call fcn.0041e219
push dword [ebp - 0x50]
lea eax, [ebp - 0x55f8]
mov ecx, esi
push eax
call fcn.0041e219
lea eax, [ebp - 0x55f8]
mov ecx, 0x42d6a8
push eax
call fcn.0041c71e
push ebx
push 0x42d690
mov ecx, esi
call fcn.0041e219
cmp dword [0x42d690], 1
jne 0x40a14e
and dword [ebp - 8], 0
lea eax, [ebp - 8]
push ebx
push eax
mov ecx, esi
call fcn.0041e219
push 0
push 0x42d69c
push dword [ebp - 8]
mov edi, 0x42f818
push edi
call fcn.0040d9be
and dword [ebp - 8], 0
add esp, 0x10
lea eax, [ebp - 8]
mov ecx, esi
push ebx
push eax
call fcn.0041e219
push 0
push 0x42d698
push dword [ebp - 8]
push edi
call fcn.0040d9be
and dword [ebp - 8], 0
add esp, 0x10
lea eax, [ebp - 8]
mov ecx, esi
push ebx
push eax
call fcn.0041e219
push 0
push 0x42d694
push dword [ebp - 8]
push edi
call fcn.0040d9be
add esp, 0x10
push ebx
push 0x42d350
mov ecx, esi
call fcn.0041e219
mov eax, dword [0x42d350]
shl eax, 2
push eax
call fcn.0040e4d8
push dword [0x42d350]
mov dword [0x42d358], eax
call fcn.0040e4d8
mov dword [0x42d354], eax
mov eax, dword [0x42d350]
pop ecx
pop ecx
shl eax, 2
push eax
mov ecx, esi
push dword [0x42d358]
call fcn.0041e219
push dword [0x42d350]
mov ecx, esi
push dword [0x42d354]
call fcn.0041e219
push ebx
push 0x42d348
mov ecx, esi
call fcn.0041e219
mov eax, dword [0x42d348]
shl eax, 4
push eax
call fcn.0040e4d8
pop ecx
mov dword [0x42d34c], eax
mov ecx, dword [0x42d348]
shl ecx, 4
push ecx
push eax
mov ecx, esi
call fcn.0041e219
push dword [ebp - 0x18]
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x184]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push eax
call fcn.00408ac2
inc dword [0x42f868]
lea eax, [ebp - 0x30]
push 7
push eax
push 0x42b3e0
call fcn.0040ef00
add esp, 0xc
test eax, eax
jne 0x40a362
and dword [ebp - 0xc], eax
lea eax, [ebp - 0xc]
push ebx
push eax
mov ecx, esi
mov dword [0x42f848], 1
call fcn.0041e219
lea eax, [ebp - 0x7d8]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
push 0
lea eax, [ebp - 0x7d8]
push dword [0x42e658]
push eax
lea eax, [ebp - 0x6d4]
push 0x42f8a8
push eax
call fcn.0040ee6d
add esp, 0x14
mov ecx, esi
call fcn.0041e2cd
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x6d4]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea eax, [ebp - 0x6d4]
push eax
call fcn.0040ee43
pop ecx
lea ecx, [ebp - 0xa4]
call fcn.0041e614
mov eax, dword [0x42b8a0]
and dword [ebp - 0x9c], 0
or dword [ebp - 0x98], 0xffffffff
mov edi, vtable.CFileException.0
push 0
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x94], eax
mov dword [ebp - 0xa4], edi
call fcn.0041c71e
lea ecx, [ebp - 0xe8]
call fcn.0041dfea
lea eax, [ebp - 0xa4]
lea ecx, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x6d4]
push 0x9041
push eax
call fcn.0041e0fc
test eax, eax
je 0x40a334
push dword [ebp - 0xc]
call fcn.0040e4d8
pop ecx
mov dword [ebp - 0x10], eax
push dword [ebp - 0xc]
mov ecx, esi
push eax
call fcn.0041e219
push dword [ebp - 0xc]
lea ecx, [ebp - 0xe8]
push dword [ebp - 0x10]
call fcn.0041e253
lea ecx, [ebp - 0xe8]
call fcn.0041e317
push dword [ebp - 0x10]
call fcn.0040e490
pop ecx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x34]
add ecx, eax
push 0
push ecx
mov ecx, esi
call fcn.0041e29e
lea ecx, [ebp - 0xe8]
call fcn.0041e03f
lea ecx, [ebp - 0x94]
mov dword [ebp - 0xa4], edi
call fcn.0041c5e1
lea eax, [ebp - 0x30]
push 7
push eax
push 0x42b3e8
call fcn.0040ef00
add esp, 0xc
test eax, eax
jne 0x40a4d1
mov al, byte [0x42f8ac]
push 0x31
mov byte [ebp - 0x508], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x507]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
and dword [ebp - 0x10], 0
push ebx
stosb byte es:[edi], al
lea eax, [ebp - 0x10]
mov ecx, esi
push eax
call fcn.0041e219
push dword [ebp - 0x10]
lea eax, [ebp - 0x508]
mov ecx, esi
push eax
call fcn.0041e219
lea eax, [ebp - 0x24]
push 0x10
push eax
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42f860
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42f864
mov ecx, esi
call fcn.0041e219
and byte [ebp - 0x11], 0
lea eax, [ebp - 0x11]
push 1
push eax
mov ecx, esi
call fcn.0041e219
cmp byte [ebp - 0x11], 0
push ebx
jne 0x40a490
push 0x42d320
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42d31c
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42d314
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42d308
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42d30c
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42d310
mov ecx, esi
call fcn.0041e219
push 1
push 0x42d318
mov ecx, esi
call fcn.0041e219
push 1
push 0x42d319
mov ecx, esi
call fcn.0041e219
push 1
push 0x42d31a
mov ecx, esi
call fcn.0041e219
push dword [ebp - 0x18]
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x508]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push eax
call fcn.00408eb6
jmp 0x40a4d1
push 0x42d304
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42d300
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42d2fc
mov ecx, esi
call fcn.0041e219
push dword [ebp - 0x18]
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x508]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push eax
call fcn.0040909d
lea eax, [ebp - 0x30]
push 7
push eax
push str.IO
call fcn.0040ef00
add esp, 0xc
test eax, eax
jne 0x40a5b4
mov al, byte [0x42f8b0]
push 0x31
mov byte [ebp - 0x5d0], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x5cf]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
and dword [ebp - 0x10], 0
push ebx
stosb byte es:[edi], al
lea eax, [ebp - 0x10]
mov ecx, esi
push eax
call fcn.0041e219
push dword [ebp - 0x10]
lea eax, [ebp - 0x5d0]
mov ecx, esi
push eax
call fcn.0041e219
lea eax, [ebp - 0x24]
push 0x10
push eax
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42f860
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42f864
mov ecx, esi
call fcn.0041e219
mov eax, dword [0x42f84c]
push ebx
mov ecx, esi
lea eax, [eax*4 + 0x42dcf8]
push eax
call fcn.0041e219
mov eax, dword [0x42f84c]
shl eax, 2
cmp dword [eax + 0x42dcf8], 0
jne 0x40a599
lea eax, [eax + 0x42d9d8]
push ebx
push eax
mov ecx, esi
call fcn.0041e219
mov eax, dword [0x42f84c]
push ebx
mov ecx, esi
lea eax, [eax*4 + 0x42d6b8]
push eax
call fcn.0041e219
push dword [ebp - 0x18]
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x5d0]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push eax
call fcn.00408dda
lea eax, [ebp - 0x30]
push 7
push eax
push 0x42b3f8
call fcn.0040ef00
add esp, 0xc
test eax, eax
jne 0x40a7da
lea eax, [ebp - 0x24]
push 0x10
push eax
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42f860
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42f864
mov ecx, esi
call fcn.0041e219
push 1
push 0x42d345
mov ecx, esi
call fcn.0041e219
push 1
push 0x42d344
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42d340
mov ecx, esi
call fcn.0041e219
push 0x42f8b4
mov ecx, 0x42d2f4
call fcn.0041c71e
mov al, byte [0x42f8b8]
push 0x18
mov byte [ebp - 0x2b0], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x2af]
rep stosd dword es:[edi], eax
and dword [ebp - 0x54], 0
push ebx
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x54]
mov ecx, esi
push eax
call fcn.0041e219
push dword [ebp - 0x54]
lea eax, [ebp - 0x2b0]
mov ecx, esi
push eax
call fcn.0041e219
lea eax, [ebp - 0x2b0]
mov ecx, 0x42d2f4
push eax
call fcn.0041c71e
push ebx
push 0x42f7f4
mov ecx, esi
call fcn.0041e219
cmp dword [0x42f7f4], 1
jne 0x40a6d2
push ebx
push 0x42f7f8
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42f7fc
mov ecx, esi
call fcn.0041e219
mov ecx, dword [ebp - 4]
mov edi, 0x42f818
lea eax, [ebp - 0x74]
push edi
push eax
call fcn.0040b79f
push eax
mov ecx, 0x42f7f0
call fcn.0041c6ce
lea ecx, [ebp - 0x74]
call fcn.0041c5e1
jmp 0x40a6d7
mov edi, 0x42f818
cmp dword [0x42f7f4], 2
jne 0x40a7c6
and dword [0x42d350], 0
push ebx
push 0x42d350
mov ecx, esi
call fcn.0041e219
mov eax, dword [0x42d350]
shl eax, 2
push eax
call fcn.0040e4d8
push dword [0x42d350]
mov dword [0x42d358], eax
call fcn.0040e4d8
mov dword [0x42d354], eax
mov eax, dword [0x42d350]
pop ecx
pop ecx
shl eax, 2
push eax
mov ecx, esi
push dword [0x42d358]
call fcn.0041e219
push dword [0x42d350]
mov ecx, esi
push dword [0x42d354]
call fcn.0041e219
push ebx
push 0x42f80c
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42f810
mov ecx, esi
call fcn.0041e219
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x84]
push edi
push eax
call fcn.0040b79f
push eax
mov ecx, 0x42f800
call fcn.0041c6ce
lea ecx, [ebp - 0x84]
call fcn.0041c5e1
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x64]
push edi
push eax
call fcn.0040b79f
push eax
mov ecx, 0x42f804
call fcn.0041c6ce
lea ecx, [ebp - 0x64]
call fcn.0041c5e1
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x68]
push edi
push eax
call fcn.0040b79f
push eax
mov ecx, 0x42f808
call fcn.0041c6ce
lea ecx, [ebp - 0x68]
call fcn.0041c5e1
push dword [ebp - 0x18]
mov ecx, dword [ebp - 4]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x24]
call fcn.0040917d
lea eax, [ebp - 0x30]
push 7
push eax
push 0x42b400
call fcn.0040ef00
add esp, 0xc
test eax, eax
jne 0x40a91b
mov al, byte [0x42f8bc]
push 0x31
mov byte [ebp - 0x440], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x43f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x10]
xor edx, edx
and byte [ebp - 0x40], dl
push ebx
push eax
mov ecx, esi
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], edx
call fcn.0041e219
lea eax, [ebp - 0x60]
push 0
push eax
push dword [ebp - 0x10]
push 0x42f818
call fcn.0040d9be
add esp, 0x10
cmp eax, 1
jne 0x40a848
mov dword [ebp - 8], eax
mov eax, dword [0x42f874]
mov edi, dword [ebp - 4]
push dword [ebp - 0x60]
lea ecx, [edi + eax*8 + 0x1bc]
call fcn.0041fbf4
lea eax, [ebp - 0x24]
push 0x10
push eax
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42f860
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42f864
mov ecx, esi
call fcn.0041e219
lea eax, [ebp - 0x40]
push 1
push eax
mov ecx, esi
call fcn.0041e219
movzx eax, byte [ebp - 0x40]
dec eax
je 0x40a8c6
dec eax
je 0x40a8bd
dec eax
jne 0x40a8f2
push 0x10
push 0x42e698
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42e690
mov ecx, esi
call fcn.0041e219
jmp 0x40a8f2
push 0x18
push 0x42e6a8
jmp 0x40a8a7
and dword [ebp - 0xc], 0
lea eax, [ebp - 0xc]
push ebx
push eax
mov ecx, esi
call fcn.0041e219
push dword [ebp - 0xc]
lea eax, [ebp - 0x440]
mov ecx, esi
push eax
call fcn.0041e219
mov eax, dword [ebp - 0xc]
and byte [ebp + eax - 0x440], 0
cmp dword [ebp - 8], 1
jne 0x40a915
push dword [ebp - 0x40]
lea eax, [ebp - 0x440]
mov ecx, edi
push eax
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x24]
call fcn.004092f3
inc dword [0x42f874]
lea eax, [ebp - 0x30]
push 7
push eax
push 0x42b408
call fcn.0040ef00
add esp, 0xc
test eax, eax
jne 0x40ac25
lea eax, [ebp - 0x24]
push 0x10
push eax
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42f860
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42f864
mov ecx, esi
call fcn.0041e219
lea eax, [ebp - 0x3c]
xor edi, edi
push ebx
push eax
mov ecx, esi
mov dword [ebp - 0x3c], edi
call fcn.0041e219
mov eax, dword [ebp - 0x3c]
inc eax
push eax
call fcn.0040e4d8
pop ecx
mov dword [ebp - 0x10], eax
push dword [ebp - 0x3c]
mov ecx, esi
push eax
call fcn.0041e219
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x10]
push ebx
push 0x42e684
and byte [ecx + eax], 0
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42e680
mov ecx, esi
call fcn.0041e219
cmp dword [0x42e680], edi
jne 0x40a9da
push ebx
push 0x42f83c
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42f840
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42e688
mov ecx, esi
call fcn.0041e219
cmp dword [0x42e680], 1
jne 0x40aa4b
push ebx
push 0x42e660
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42e664
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42e668
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42e66c
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42e670
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42e674
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42e678
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42e67c
mov ecx, esi
call fcn.0041e219
cmp dword [0x42e680], 2
jne 0x40ac05
lea eax, [ebp - 0xc]
push ebx
push eax
mov ecx, esi
mov dword [ebp - 0xc], edi
call fcn.0041e219
mov ecx, esi
call fcn.0041e2cd
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x78]
push eax
call fcn.0040b6d1
push eax
mov ecx, 0x42f7d8
call fcn.0041c6ce
lea ecx, [ebp - 0x78]
call fcn.0041c5e1
push 0x80
push dword [0x42f7d8]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push dword [0x42f7d8]
call fcn.0040ee43
pop ecx
lea ecx, [ebp - 0xb8]
call fcn.0041e614
mov eax, dword [0x42b8a0]
or dword [ebp - 0xac], 0xffffffff
push edi
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xb8], vtable.CFileException.0
mov dword [ebp - 0xb0], edi
call fcn.0041c71e
lea ecx, [ebp - 0xf8]
call fcn.0041dfea
lea eax, [ebp - 0xb8]
lea ecx, [ebp - 0xf8]
push eax
push 0x9041
push dword [0x42f7d8]
call fcn.0041e0fc
test eax, eax
je 0x40ab4e
push dword [ebp - 0xc]
call fcn.0040e4d8
pop ecx
mov dword [ebp - 8], eax
push dword [ebp - 0xc]
mov ecx, esi
push eax
call fcn.0041e219
push dword [ebp - 0xc]
lea ecx, [ebp - 0xf8]
push dword [ebp - 8]
call fcn.0041e253
lea ecx, [ebp - 0xf8]
call fcn.0041e317
push dword [ebp - 8]
call fcn.0040e490
pop ecx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x34]
add ecx, eax
push edi
push ecx
mov ecx, esi
call fcn.0041e29e
push ebx
push 0x42f7dc
mov ecx, esi
call fcn.0041e219
cmp dword [0x42f7dc], edi
je 0x40ab81
push ebx
push 0x42f7e0
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42f7e4
mov ecx, esi
call fcn.0041e219
push 0x42f8c0
mov ecx, 0x42f7e8
call fcn.0041c71e
cmp dword [0x42f7e4], edi
je 0x40abe5
lea eax, [ebp - 8]
push ebx
push eax
mov ecx, esi
mov dword [ebp - 8], edi
call fcn.0041e219
mov eax, dword [ebp - 8]
inc eax
push eax
call fcn.0040e4d8
pop ecx
mov edi, eax
push dword [ebp - 8]
mov ecx, esi
push edi
call fcn.0041e219
mov eax, dword [ebp - 8]
push edi
mov ecx, 0x42f7e8
and byte [edi + eax], 0
call fcn.0041c71e
push edi
call fcn.0040e490
pop ecx
lea ecx, [ebp - 0xf8]
call fcn.0041e03f
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0xb8], vtable.CFileException.0
call fcn.0041c5e1
push dword [ebp - 0x18]
mov ecx, dword [ebp - 4]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x10]
call fcn.00408b79
push dword [ebp - 0x10]
call fcn.0040e490
pop ecx
lea eax, [ebp - 0x30]
push 7
push eax
push 0x42b410
call fcn.0040ef00
add esp, 0xc
test eax, eax
jne 0x40ad0e
lea eax, [ebp - 0x24]
push 0x10
push eax
mov ecx, esi
call fcn.0041e219
push 1
push 0x42d2e0
mov ecx, esi
call fcn.0041e219
push 1
push 0x42d2d1
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42d2dc
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42d2d8
mov ecx, esi
call fcn.0041e219
push ebx
push 0x42d2d4
mov ecx, esi
call fcn.0041e219
push 1
push 0x42d2d0
mov ecx, esi
call fcn.0041e219
push 0x42f8c4
mov ecx, 0x42d2f4
call fcn.0041c71e
mov al, byte [0x42f8c8]
push 0x18
mov byte [ebp - 0x378], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x377]
rep stosd dword es:[edi], eax
and dword [ebp - 0x5c], 0
push ebx
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x5c]
mov ecx, esi
push eax
call fcn.0041e219
push dword [ebp - 0x5c]
lea eax, [ebp - 0x378]
mov ecx, esi
push eax
call fcn.0041e219
lea eax, [ebp - 0x378]
mov ecx, 0x42d2f4
push eax
call fcn.0041c71e
push dword [ebp - 0x18]
mov ecx, dword [ebp - 4]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x24]
call fcn.00409250
lea eax, [ebp - 0xd8]
push 7
push eax
mov ecx, esi
call fcn.0041e219
test eax, eax
jne 0x4096e6
pop ebx
mov ecx, esi
call fcn.0041e317
lea ecx, [ebp - 0xbc]
mov dword [ebp - 0xcc], vtable.CFileException.0
call fcn.0041c5e1
pop edi
pop esi
leave
ret