Function at 0x40a2b0
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x66bbd5
mov eax, dword fs:[0]
push eax
sub esp, 0x844
mov eax, dword [0x726100]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x840], ebx
mov dword [ebp - 4], 3
mov byte [ebp - 0x812], 0
call fcn.00427fa4
mov ecx, eax
test ecx, ecx
jne 0x40a309
push 0x80004005
call fcn.00404730
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x818], eax
mov esi, dword [ebp + 0x10]
mov edi, dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov byte [ebp - 4], 4
cmp dword [esi - 0xc], 0
je 0x40a3a7
push 0x250
lea eax, [ebp - 0x810]
push 0
push eax
call fcn.00617a20
add esp, 0xc
lea eax, [ebp - 0x810]
push eax
push esi
call edi
mov edi, eax
cmp edi, 0xffffffff
jne 0x40a393
push 1
call fcn.0042758c
test eax, eax
je 0x40a36a
push 1
push eax
lea ecx, [ebp - 0x818]
call fcn.00404920
push ecx
mov esi, esp
mov dword [ebp - 0x81c], esi
mov eax, dword [ebp - 0x818]
add eax, 0xfffffff0
push eax
call fcn.00404750
add esp, 4
add eax, 0x10
mov ecx, ebx
mov dword [esi], eax
call fcn.0040b4c0
jmp 0x40a39a
mov byte [ebp - 0x812], 1
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov edi, dword [sym.imp.KERNEL32.dll_FindFirstFileW]
push ecx
mov esi, esp
mov dword [ebp - 0x81c], esi
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
push eax
call fcn.00404750
add esp, 4
add eax, 0x10
mov ecx, ebx
mov dword [esi], eax
call fcn.00409f90
test al, al
jne 0x40a4bc
push 2
call fcn.0042758c
test eax, eax
je 0x40a3ec
push 2
push eax
lea ecx, [ebp - 0x818]
call fcn.00404920
push ecx
mov esi, esp
mov dword [ebp - 0x81c], esi
mov eax, dword [ebp - 0x818]
add eax, 0xfffffff0
push eax
mov dword [ebp - 0x828], eax
call fcn.00404750
add esp, 4
add eax, 0x10
mov ecx, ebx
mov dword [esi], eax
call fcn.0040b4c0
mov edx, dword [ebp - 0x828]
or edi, 0xffffffff
mov byte [ebp - 4], 3
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a43a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, edi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a458
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 0xc]
mov eax, edi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a476
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 0x10]
mov eax, edi
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a494
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp + 0x14]
mov eax, edi
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x40a4b5
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, edi
jmp 0x40b274
mov dword [ebp - 0x70], 0x6912ac
mov dword [ebp - 0x48], 0x6912b4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x44], eax
xor eax, eax
mov word [ebp - 0x6c], ax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x58], 7
mov dword [ebp - 0x5c], 0
mov eax, dword [eax + 4]
push dword [ebp + eax - 0x48]
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0x104
lea eax, [ebp - 0x824]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x70]
call fcn.0040cb10
mov ecx, dword [eax]
mov byte [ebp - 4], 6
mov byte [eax + 4], 1
call fcn.0040ca90
push 0x104
push dword [eax]
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [ebp - 0x824]
mov byte [ebp - 4], 5
call fcn.004094d0
push 1
lea eax, [ebp - 0x811]
push eax
push 0x6915b0
lea ecx, [ebp - 0x160]
call fcn.00408a00
push 0
lea eax, [ebp - 0x811]
mov byte [ebp - 4], 7
push eax
push 0x6915a8
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x40], 0x6912ac
mov dword [ebp - 0x18], 0x6912b4
call fcn.004031d0
push 1
lea eax, [ebp - 0x811]
mov byte [ebp - 4], 8
push eax
push str.i386
lea ecx, [ebp - 0x1f0]
call fcn.00408a00
push 1
lea eax, [ebp - 0x811]
mov byte [ebp - 4], 9
push eax
push str.Language_Independent
lea ecx, [ebp - 0x1c0]
call fcn.00408a00
push 0
lea eax, [ebp - 0x811]
mov byte [ebp - 4], 0xa
push eax
push str.Redist
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd0], 0x6912ac
mov dword [ebp - 0xa8], 0x6912b4
call fcn.004031d0
push 0
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x340]
push 0
push eax
lea ecx, [ebp - 0x70]
call fcn.0040d000
lea ecx, [ebp - 0x310]
mov byte [ebp - 4], 0xc
push ecx
mov ecx, eax
call fcn.0040d520
push 0
push 0
lea ecx, [ebp - 0x2e0]
mov byte [ebp - 4], 0xd
push ecx
mov ecx, eax
call fcn.0040d000
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 0xe
push ecx
lea ecx, [ebp - 0x2b0]
push ecx
mov ecx, eax
call fcn.00409870
lea ecx, [ebp - 0x1c0]
mov byte [ebp - 4], 0xf
push ecx
lea ecx, [ebp - 0x280]
push ecx
mov ecx, eax
call fcn.00409870
lea ecx, [ebp - 0x1f0]
mov byte [ebp - 4], 0x10
push ecx
lea ecx, [ebp - 0x250]
push ecx
mov ecx, eax
call fcn.00409870
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x11
push ecx
lea ecx, [ebp - 0x220]
push ecx
mov ecx, eax
call fcn.00409870
lea ecx, [ebp - 0x160]
mov byte [ebp - 4], 0x12
push ecx
lea ecx, [ebp - 0xa0]
push ecx
mov ecx, eax
call fcn.00409870
lea ecx, [ebp - 0x220]
call fcn.00403b40
lea ecx, [ebp - 0x250]
call fcn.00403b40
lea ecx, [ebp - 0x280]
call fcn.00403b40
lea ecx, [ebp - 0x2b0]
call fcn.00403b40
lea ecx, [ebp - 0x2e0]
call fcn.00403b40
lea ecx, [ebp - 0x310]
call fcn.00403b40
lea ecx, [ebp - 0x340]
call fcn.00403b40
lea ecx, [ebp - 0xd0]
call fcn.00403b40
lea ecx, [ebp - 0x1c0]
call fcn.00403b40
lea ecx, [ebp - 0x1f0]
call fcn.00403b40
lea ecx, [ebp - 0x40]
call fcn.00403b40
lea ecx, [ebp - 0x160]
mov byte [ebp - 4], 0x1f
call fcn.00403b40
push 0x250
lea eax, [ebp - 0x5c0]
push 0
push eax
call fcn.00617a20
add esp, 0xc
lea ecx, [ebp - 0x5c0]
cmp dword [ebp - 0x88], 8
lea eax, [ebp - 0x9c]
cmovae eax, dword [ebp - 0x9c]
push ecx
push eax
call edi
cmp eax, 0xffffffff
jne 0x40a927
push 1
lea eax, [ebp - 0x811]
push eax
push 0x6915b0
lea ecx, [ebp - 0x100]
call fcn.00408a00
push 0
push 0
lea eax, [ebp - 0x190]
mov byte [ebp - 4], 0x20
push eax
lea ecx, [ebp - 0x70]
call fcn.0040d000
lea ecx, [ebp - 0x100]
mov byte [ebp - 4], 0x21
push ecx
lea ecx, [ebp - 0x370]
push ecx
mov ecx, eax
call fcn.00409870
mov byte [ebp - 4], 0x22
test eax, eax
je 0x40a7cc
add eax, 4
lea ecx, [ebp - 0x9c]
cmp ecx, eax
je 0x40a7de
jmp 0x40a7ce
xor eax, eax
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x9c]
call fcn.00406950
lea ecx, [ebp - 0x370]
call fcn.00403b40
lea ecx, [ebp - 0x190]
call fcn.00403b40
lea ecx, [ebp - 0x100]
mov byte [ebp - 4], 0x1f
call fcn.00403b40
cmp dword [ebp - 0x88], 8
lea ecx, [ebp - 0x5c0]
lea eax, [ebp - 0x9c]
cmovae eax, dword [ebp - 0x9c]
push ecx
push eax
call edi
cmp eax, 0xffffffff
jne 0x40a927
push 3
call fcn.0042758c
test eax, eax
je 0x40a843
push 3
push eax
lea ecx, [ebp - 0x818]
call fcn.00404920
push ecx
mov esi, esp
mov dword [ebp - 0x81c], esi
mov eax, dword [ebp - 0x818]
add eax, 0xfffffff0
push eax
mov dword [ebp - 0x828], eax
call fcn.00404750
add esp, 4
add eax, 0x10
mov ecx, ebx
mov dword [esi], eax
call fcn.0040b4c0
lea ecx, [ebp - 0xa0]
call fcn.00403b40
lea ecx, [ebp - 0x70]
call fcn.00403b40
mov edx, dword [ebp - 0x828]
or edi, 0xffffffff
mov byte [ebp - 4], 3
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a8a4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, edi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a8c2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 0xc]
mov eax, edi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a8e0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 0x10]
mov eax, edi
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a8fe
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 0x14]
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x40a91d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, 0xfffffffd
jmp 0x40b274
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
push eax
call fcn.00404750
add eax, 0x10
mov dword [ebp - method.CISPath.virtual_0], vtable.CISPath.0
mov dword [ebp - 0x844], eax
push ecx
mov edi, esp
mov byte [ebp - 4], 0x23
add eax, 0xfffffff0
mov dword [ebp - 0x81c], edi
push eax
lea esi, [edi + 4]
mov dword [ebp - 0x81c], esi
mov dword [ebp - 0x830], eax
call fcn.00404750
add esp, 4
add eax, 0x10
mov dword [esi], eax
mov dword [edi], vtable.CPathEx.0
call fcn.0041c000
add esp, 8
test al, al
jne 0x40aaab
push 8
call fcn.0042758c
test eax, eax
je 0x40a9a9
push 8
push eax
lea ecx, [ebp - 0x818]
call fcn.00404920
push ecx
mov esi, esp
mov dword [ebp - 0x81c], esi
mov eax, dword [ebp - 0x818]
add eax, 0xfffffff0
push eax
mov dword [ebp - 0x828], eax
call fcn.00404750
add esp, 4
add eax, 0x10
mov ecx, ebx
mov dword [esi], eax
call fcn.0040b4c0
mov edx, dword [ebp - 0x830]
or edi, 0xffffffff
mov byte [ebp - 4], 0x1f
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a9f7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0xa0]
call fcn.00403b40
lea ecx, [ebp - 0x70]
call fcn.00403b40
mov edx, dword [ebp - 0x828]
mov eax, edi
mov byte [ebp - 4], 3
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40aa28
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, edi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40aa46
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 0xc]
mov eax, edi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40aa64
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 0x10]
mov eax, edi
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40aa82
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 0x14]
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x40aaa1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, 0xfffffffa
jmp 0x40b274
cmp dword [ebp - 0x88], 8
lea eax, [ebp - 0x9c]
push 0
push dword [ebp + 0xc]
cmovae eax, dword [ebp - 0x9c]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x40abee
push 4
call fcn.0042758c
test eax, eax
je 0x40aaec
push 4
push eax
lea ecx, [ebp - 0x818]
call fcn.00404920
push ecx
mov esi, esp
mov dword [ebp - 0x81c], esi
mov eax, dword [ebp - 0x818]
add eax, 0xfffffff0
push eax
mov dword [ebp - 0x828], eax
call fcn.00404750
add esp, 4
add eax, 0x10
mov ecx, ebx
mov dword [esi], eax
call fcn.0040b4c0
mov edx, dword [ebp - 0x830]
or edi, 0xffffffff
mov byte [ebp - 4], 0x1f
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40ab3a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0xa0]
call fcn.00403b40
lea ecx, [ebp - 0x70]
call fcn.00403b40
mov edx, dword [ebp - 0x828]
mov eax, edi
mov byte [ebp - 4], 3
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40ab6b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, edi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40ab89
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 0xc]
mov eax, edi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40aba7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 0x10]
mov eax, edi
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40abc5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 0x14]
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x40abe4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, 0xfffffffc
jmp 0x40b274
push 1
push ecx
mov esi, esp
mov dword [ebp - 0x81c], esi
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
push eax
call fcn.00404750
add esp, 4
lea ecx, [ebp - 0x130]
add eax, 0x10
mov dword [esi], eax
call fcn.00408d10
push 0
lea eax, [ebp - 0x811]
mov byte [ebp - 4], 0x24
push eax
push str.Disk1
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x40], 0x6912ac
mov dword [ebp - 0x18], 0x6912b4
call fcn.004031d0
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x130]
call fcn.0040ca40
lea ecx, [ebp - 0x40]
mov bl, al
call fcn.00403b40
lea eax, [ebp - 0x811]
push 0
push eax
push str.setup.exe
test bl, bl
je 0x40ac9c
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x40], 0x6912ac
mov dword [ebp - 0x18], 0x6912b4
call fcn.004031d0
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x25
push eax
lea ecx, [ebp - 0x130]
call fcn.00409a80
lea ecx, [ebp - 0x40]
jmp 0x40ad26
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd0], 0x6912ac
mov dword [ebp - 0xa8], 0x6912b4
call fcn.004031d0
push 0
lea eax, [ebp - 0x811]
mov byte [ebp - 4], 0x26
push eax
push str.Disk1
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x40], 0x6912ac
mov dword [ebp - 0x18], 0x6912b4
call fcn.004031d0
lea eax, [ebp - 0xd0]
mov byte [ebp - 4], 0x27
push eax
lea eax, [ebp - 0x190]
push eax
lea ecx, [ebp - 0x40]
call fcn.00409870
push eax
lea ecx, [ebp - 0x130]
mov byte [ebp - 4], 0x28
call fcn.00409a80
lea ecx, [ebp - 0x190]
call fcn.00403b40
lea ecx, [ebp - 0x40]
call fcn.00403b40
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 0x24
call fcn.00403b40
push 1
push ecx
mov esi, esp
mov dword [ebp - 0x81c], esi
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
push eax
call fcn.00404750
add esp, 4
lea ecx, [ebp - 0x100]
add eax, 0x10
mov dword [esi], eax
call fcn.00408d10
mov ebx, dword [ebp - 0x840]
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0x130]
mov byte [ebp - 4], 0x29
push eax
mov ecx, ebx
call fcn.0040a160
lea ecx, [ebp - 0x100]
mov byte [ebp - 4], 0x24
call fcn.00403b40
or edi, 0xffffffff
cmp byte [ebp - 0x812], 0
je 0x40af32
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
push eax
call fcn.00404750
add eax, 0x10
add esp, 4
mov dword [ebp - 0x828], eax
push 0x6915dc
lea ecx, [ebp - 0x828]
mov byte [ebp - 4], 0x2a
call fcn.00409a30
push 0x6915e4
lea ecx, [ebp - 0x830]
call fcn.00403070
lea eax, [ebp + 0x14]
mov byte [ebp - 4], 0x2b
push eax
lea eax, [ebp - 0x830]
push eax
lea eax, [ebp - 0x81c]
push eax
call fcn.004097c0
add esp, 0xc
mov eax, dword [eax]
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x2c
push dword [eax - 0xc]
push eax
call fcn.00409ec0
mov edx, dword [ebp - 0x81c]
mov eax, edi
mov byte [ebp - 4], 0x2b
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40ae24
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x830]
mov eax, edi
mov byte [ebp - 4], 0x2a
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40ae45
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 1
push ecx
mov esi, esp
mov dword [ebp - 0x81c], esi
mov eax, dword [ebp + 0x10]
add eax, 0xfffffff0
push eax
call fcn.00404750
add esp, 4
lea ecx, [ebp - 0x160]
add eax, 0x10
mov dword [esi], eax
call fcn.00408d10
push 1
push ecx
mov esi, esp
mov byte [ebp - 4], 0x2d
mov dword [ebp - 0x81c], esi
mov eax, dword [ebp - 0x828]
add eax, 0xfffffff0
push eax
mov dword [ebp - 0x81c], eax
call fcn.00404750
add esp, 4
lea ecx, [ebp - 0x100]
add eax, 0x10
mov dword [esi], eax
call fcn.00408d10
lea eax, [ebp - 0x160]
mov byte [ebp - 4], 0x2e
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.00412490
add esp, 8
lea ecx, [ebp - 0x100]
test al, al
sete bl
call fcn.00403b40
lea ecx, [ebp - 0x160]
mov byte [ebp - 4], 0x2a
call fcn.00403b40
test bl, bl
je 0x40af0e
push 9
lea ecx, [ebp - 0x818]
call fcn.0040b400
push ecx
lea eax, [ebp - 0x818]
mov ecx, esp
push eax
call fcn.004088f0
mov ebx, dword [ebp - 0x840]
mov ecx, ebx
call fcn.0040b4c0
jmp 0x40af14
mov ebx, dword [ebp - 0x840]
mov edx, dword [ebp - 0x81c]
mov eax, edi
mov byte [ebp - 4], 0x24
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40af32
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
push eax
call fcn.00404750
add eax, 0x10
mov dword [ebp - method.CISPath.virtual_0], vtable.CISPath.0
add esp, 4
mov dword [ebp - 0x838], eax
push 0
lea eax, [ebp - 0x820]
mov byte [ebp - 4], 0x2f
push eax
lea ecx, [ebp - 0x83c]
call fcn.0040f560
push str.Disk1
push dword [eax + 4]
call fcn.00634812
mov edx, dword [ebp - 0x81c]
add esp, 8
test eax, eax
mov byte [ebp - 4], 0x2f
mov dword [ebp - method.CStringEx.virtual_0], vtable.CStringEx.0
mov eax, edi
sete byte [ebp - 0x812]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40afb0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x812], 0
je 0x40b016
push 0
lea eax, [ebp - 0x834]
push eax
lea ecx, [ebp - 0x83c]
call fcn.00410690
push 0
lea ecx, [ebp - 0x82c]
mov byte [ebp - 4], 0x31
push ecx
mov ecx, eax
call fcn.0040f740
mov byte [ebp - 4], 0x32
test eax, eax
je 0x40afee
add eax, 4
jmp 0x40aff0
xor eax, eax
push eax
lea ecx, [ebp - 0x838]
call fcn.00409750
lea ecx, [ebp - 0x82c]
call fcn.004093e0
lea ecx, [ebp - 0x834]
mov byte [ebp - 4], 0x2f
call fcn.004093e0
push dword [ebp - 0x838]
lea ecx, [ebp - 0x850]
mov byte [ebp - 0x850], 0
push dword [ebp + 0xc]
mov dword [ebp - 0x84c], 0
call fcn.0040c590
test eax, eax
je 0x40b15e
push 5
call fcn.0042758c
test eax, eax
je 0x40b05c
push 5
push eax
lea ecx, [ebp - 0x818]
call fcn.00404920
push ecx
mov esi, esp
mov dword [ebp - 0x81c], esi
mov eax, dword [ebp - 0x818]
add eax, 0xfffffff0
push eax
mov dword [ebp - 0x81c], eax
call fcn.00404750
add esp, 4
add eax, 0x10
mov ecx, ebx
mov dword [esi], eax
call fcn.0040b4c0
lea ecx, [ebp - 0x83c]
call fcn.004093e0
lea ecx, [ebp - 0x130]
call fcn.00403b40
lea ecx, [ebp - 0x848]
call fcn.004093e0
lea ecx, [ebp - 0xa0]
call fcn.00403b40
lea ecx, [ebp - 0x70]
call fcn.00403b40
mov edx, dword [ebp - 0x81c]
mov eax, edi
mov byte [ebp - 4], 3
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b0db
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, edi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b0f9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 0xc]
mov eax, edi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b117
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 0x10]
mov eax, edi
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b135
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 0x14]
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x40b154
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, 0xfffffffb
jmp 0x40b274
push 0xa
call fcn.0042758c
test eax, eax
je 0x40b177
push 0xa
push eax
lea ecx, [ebp - 0x818]
call fcn.00404920
push ecx
mov esi, esp
mov dword [ebp - 0x81c], esi
mov eax, dword [ebp - 0x818]
add eax, 0xfffffff0
push eax
mov dword [ebp - 0x81c], eax
call fcn.00404750
add esp, 4
add eax, 0x10
mov ecx, ebx
mov dword [esi], eax
call fcn.0040b4c0
lea ecx, [ebp - 0x83c]
call fcn.004093e0
lea ecx, [ebp - 0x130]
call fcn.00403b40
lea ecx, [ebp - 0x848]
call fcn.004093e0
lea ecx, [ebp - 0xa0]
call fcn.00403b40
lea ecx, [ebp - 0x70]
call fcn.00403b40
mov edx, dword [ebp - 0x81c]
mov eax, edi
mov byte [ebp - 4], 3
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b1f6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, edi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b214
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 0xc]
mov eax, edi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b232
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 0x10]
mov eax, edi
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b250
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 0x14]
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x40b26f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005f4722
mov esp, ebp
pop ebp
ret 0x10