Function at 0x42f490
Capabilities:
Delete directory
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x503ed7
mov eax, dword fs:[0]
push eax
sub esp, 0xb8
mov eax, dword [0x54c2c0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
xor ebx, ebx
mov dword [ebp - 4], ebx
mov eax, dword [edi + 0xa0]
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0xb0], esi
cmp eax, ebx
je 0x42f4ed
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [edi + 0xa0], ebx
mov dword [esi], ebx
mov eax, dword [edi + 0x98]
cmp eax, ebx
je 0x42f507
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [edi + 0x98], ebx
lea eax, [edi + 0x5d]
mov byte [eax], bl
mov byte [edi + 0x58], bl
mov dword [edi + 0x88], ebx
mov dword [edi + 0x8c], ebx
mov byte [edi + 0x90], bl
mov ebx, dword [ebp + 0xc]
lea esi, [ebp - 0x5c]
mov dword [ebp - 0xc4], eax
mov dword [edi + 0x84], ebx
call fcn.00406150
mov byte [ebp - 4], 1
mov eax, dword [edi + 0x10]
mov esi, dword [eax]
push ebx
lea ecx, [ebp - 0x5c]
mov ebx, eax
mov dword [ebp - 0x70], esi
call fcn.00438780
mov ebx, eax
test ebx, ebx
je 0x42f568
mov eax, dword [ebp - 0x5c]
push eax
call fcn.004e0a60
add esp, 4
mov eax, ebx
jmp 0x43037d
mov ecx, dword [ebp + 0xc]
push 6
push ecx
sub edi, 0xffffff80
push esi
mov dword [ebp - 0xc0], edi
call fcn.00438580
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x43022c
mov ebx, dword [ebp - 0x6c]
lea eax, [ebx + 0x44]
lea edi, [ebp - 0x5c]
call fcn.004061d0
xor eax, eax
mov dword [ebp - 0xac], eax
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0xac]
push eax
push 0x1d
mov byte [ebp - 4], 2
mov edx, dword [esi]
mov edx, dword [edx + 0x18]
push ecx
push esi
call edx
mov edi, eax
test edi, edi
je 0x42f617
movzx eax, word [ebp - 0xac]
add eax, 0xfffffffe
cmp eax, 0x3e
ja case.0x42f5d5.8
movzx eax, byte [eax + 0x4303a4]
jmp dword [eax*4 + 0x43039c]
xor ecx, ecx
mov dword [ebp - 0xac], ecx
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.004e0a60
add esp, 4
mov eax, edi
jmp 0x43037d
lea eax, [ebp - 0xac]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.004e0a60
add esp, 4
mov eax, edi
jmp 0x43037d
mov ax, word [ebp - 0xac]
test ax, ax
je 0x42f660
cmp ax, 0x15
je 0x42f64a
lea ecx, [ebp - 0xac]
call fcn.00403e90
mov edx, dword [ebp - 0x5c]
push edx
call fcn.004e0a60
add esp, 4
mov eax, 0x80004005
jmp 0x43037d
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ebp - 0xa0]
mov dword [ebx + 0x50], ecx
mov dword [ebx + 0x54], edx
mov byte [ebx + 0x58], 1
movzx eax, ax
add eax, 0xfffffffe
mov byte [ebp - 4], 1
cmp eax, 0x3e
ja case.0x42f676.8
movzx eax, byte [eax + 0x4303ec]
jmp dword [eax*4 + 0x4303e4]
lea ecx, [ebp - 0xac]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp - 0xc4]
push 0xf
push edx
push esi
call fcn.00438580
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x43015e
mov esi, ebx
call fcn.0042f2c0
mov esi, eax
test esi, esi
jne 0x42f793
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x42f6fa
mov edx, dword [ebp - 0xc0]
cmp byte [edx], 0
lea edx, [ebp - 0x4d]
sete cl
push edx
mov byte [ebp - 0xc0], cl
mov ecx, dword [ebp - 0xc0]
push ecx
lea edx, [ebp - 0x5c]
push edx
push eax
call fcn.00448190
test al, al
je 0x42fa84
cmp byte [ebp - 0x4d], 0
je 0x42fa84
cmp dword [ebp + 0x14], 0
jne 0x4302b2
cmp byte [ebx + 0xb9], 0
jne 0x4302b2
cmp byte [ebx + 0xb8], 0
je 0x42f75e
push 8
call fcn.00447180
add esp, 4
test eax, eax
je 0x42f75a
mov dword [eax + 4], 0
mov dword [eax], vtable.CStdOutFileStream.0
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
mov esi, eax
call edx
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0xb0]
push ecx
mov dword [eax], esi
call fcn.004e0a60
add esp, 4
xor eax, eax
jmp 0x43037d
xor esi, esi
jmp 0x42f73f
xor edx, edx
mov dword [ebp - 0xac], edx
lea edx, [ebp - 0xac]
push edx
mov edx, dword [ebp + 0xc]
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
push 9
push edx
push eax
mov eax, dword [ecx + 0x18]
call eax
mov esi, eax
test esi, esi
je 0x42f7a6
lea ecx, [ebp - 0xac]
call fcn.00403e90
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.004e0a60
add esp, 4
mov eax, esi
jmp 0x43037d
mov ax, word [ebp - 0xac]
cmp ax, 0x13
jne 0x42f7c2
mov edx, dword [ebp - 0xa4]
mov dword [ebx + 0x78], edx
mov byte [ebx + 0x7f], 1
jmp 0x42f7ce
test ax, ax
jne 0x430291
mov byte [ebx + 0x7f], al
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 1
call fcn.00403e90
mov esi, dword [ebp - 0x6c]
mov eax, dword [ebp + 0xc]
push 0xa
add ebx, 0x7c
lea edi, [esi + 0x60]
push eax
mov edx, esi
call fcn.0042f0b0
mov edi, eax
test edi, edi
jne 0x42f604
mov edx, dword [ebp + 0xc]
push 0xb
push edx
lea ebx, [esi + 0x7d]
lea edi, [esi + 0x68]
mov edx, esi
call fcn.0042f0b0
mov edi, eax
test edi, edi
je 0x42f829
mov eax, dword [ebp - 0x5c]
push eax
call fcn.004e0a60
add esp, 4
mov eax, edi
jmp 0x43037d
mov ecx, dword [ebp + 0xc]
push 0xc
lea ebx, [esi + 0x7e]
lea edi, [esi + 0x70]
push ecx
mov edx, esi
call fcn.0042f0b0
mov edi, eax
xor ebx, ebx
cmp edi, ebx
jne 0x43022c
mov eax, dword [esi + 0x10]
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax]
push 0x15
push ecx
push eax
lea edi, [ebp - 0x4d]
mov byte [ebp - 0x4d], bl
call fcn.00438580
mov edi, eax
add esp, 0xc
cmp edi, ebx
jne 0x43022c
mov eax, 4
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x84], vtable.CObjectVector_class_CStringBase_wchar_t__.0
mov byte [ebp - 4], al
lea eax, [ebp - 0x5c]
push eax
lea edi, [ebp - 0x84]
call fcn.00447a80
mov ecx, dword [ebp - 0x7c]
add esp, 4
cmp ecx, ebx
je 0x43008c
mov eax, dword [esi + 0x30]
dec eax
je 0x42f966
dec eax
jne 0x42f8b7
lea ebx, [ecx - 1]
push ebx
push 0
lea ecx, [ebp - 0x84]
call fcn.0041dd30
lea edx, [ebp - 0x84]
push edx
call fcn.00437140
lea eax, [ebp - 0x90]
add esp, 4
push eax
lea ebx, [ebp - 0x84]
call fcn.00437370
add esp, 4
mov byte [ebp - 4], 5
cmp byte [ebp - 0x4d], 0
jne 0x42fa1d
cmp byte [esi + 0x80], 0
jne 0x42f91c
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x42fa1d
mov edx, dword [ebp - 0x84]
dec eax
push 1
push eax
mov eax, dword [edx + 4]
mov ecx, ebx
call eax
cmp dword [ebp - 0x7c], 0
je 0x42fa1d
lea esi, [ebp - 0xbc]
call fcn.00406150
mov ebx, esi
mov esi, dword [ebp - 0x6c]
lea ecx, [ebp - 0x84]
push ecx
mov eax, esi
mov byte [ebp - 4], 6
call fcn.0042f050
cmp byte [esi + 0x80], 0
je 0x42fa0a
cmp byte [esi + 0x5c], 0
je 0x42f9c3
cmp byte [esi + 0x7e], 0
je 0x42f9c3
lea edx, [esi + 0x70]
jmp 0x42f9d3
mov ebx, dword [esi + 0xac]
cmp ecx, ebx
jg 0x42f996
lea eax, [ebp - 0x84]
push eax
mov byte [ebp - 4], 1
call fcn.0041dbe0
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.004e0a60
add esp, 4
mov eax, 0x80004005
jmp 0x43037d
xor edi, edi
cmp edi, ebx
jge 0x42f8b7
mov edx, dword [ebp - 0x78]
mov eax, dword [edx + edi*4]
mov ecx, dword [esi + 0xb0]
mov ecx, dword [ecx + edi*4]
mov edx, dword [eax]
mov ecx, dword [ecx]
push edx
call fcn.00446f60
add esp, 4
test eax, eax
jne 0x42f970
inc edi
jmp 0x42f998
mov eax, dword [esi + 0x10]
cmp byte [eax + 0x2c], 0
je 0x42f9d1
lea edx, [eax + 0x24]
jmp 0x42f9d3
xor edx, edx
cmp byte [esi + 0x5b], 0
je 0x42f9e4
cmp byte [esi + 0x7d], 0
je 0x42f9e4
lea ecx, [esi + 0x68]
jmp 0x42f9e6
xor ecx, ecx
cmp byte [esi + 0x5a], 0
je 0x42f9f7
cmp byte [esi + 0x7c], 0
je 0x42f9f7
lea eax, [esi + 0x60]
jmp 0x42f9f9
xor eax, eax
push edx
push ecx
push eax
mov eax, dword [ebp - 0xbc]
call fcn.00448f00
add esp, 0xc
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0xbc]
push edx
call fcn.004e0a60
add esp, 4
lea eax, [ebp - 0x90]
push eax
lea ecx, [esi + 0x24]
push ecx
lea edx, [ebp - 0x68]
push edx
call fcn.004217b0
add esp, 0xc
mov byte [ebp - 4], 7
cmp byte [esi + 0x80], 0
je 0x42fa97
lea edi, [ebp - 0x68]
lea eax, [esi + 0x38]
call fcn.004061d0
cmp byte [ebp - 0x4d], 0
je 0x42fa5c
mov esi, dword [esi + 0x38]
push esi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov eax, dword [ebp - 0x68]
push eax
call fcn.004e0a60
mov ecx, dword [ebp - 0x90]
push ecx
call fcn.004e0a60
add esp, 8
lea edx, [ebp - 0x84]
push edx
mov byte [ebp - 4], 1
call fcn.0041dbe0
mov eax, dword [ebp - 0x5c]
push eax
call fcn.004e0a60
add esp, 4
xor eax, eax
jmp 0x43037d
cmp byte [esi + 0x58], 0
jne 0x42ff81
lea esi, [ebp - 0x24]
call fcn.00406150
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x68]
lea edi, [ebp - 0x4c]
call fcn.00449e10
test al, al
je 0x42ff6e
mov edi, dword [ebp - 0x6c]
mov eax, dword [edi + 0x34]
sub eax, 0
je 0x42fb18
sub eax, 2
jne case.0x42fbaf.0
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.004e0a60
mov edx, dword [ebp - 0x68]
push edx
call fcn.004e0a60
mov eax, dword [ebp - 0x90]
push eax
call fcn.004e0a60
add esp, 0xc
lea ecx, [ebp - 0x84]
push ecx
mov byte [ebp - 4], 1
call fcn.0041dbe0
mov edx, dword [ebp - 0x5c]
push edx
call fcn.004e0a60
add esp, 4
xor eax, eax
jmp 0x43037d
cmp byte [edi + 0x90], 0
je 0x42fb29
lea edx, [edi + 0x88]
jmp 0x42fb2b
xor edx, edx
cmp byte [edi + 0x7e], 0
je 0x42fb36
lea ecx, [edi + 0x70]
jmp 0x42fb38
xor ecx, ecx
mov eax, dword [edi + 0x18]
mov esi, dword [eax]
lea ebx, [ebp - 0x70]
push ebx
push edx
push ecx
mov ecx, dword [ebp - 0x5c]
push ecx
lea edx, [ebp - 0x4c]
push edx
mov edx, dword [ebp - 0x68]
lea ecx, [ebp - 0x34]
push ecx
push edx
push eax
mov eax, dword [esi + 0x14]
call eax
mov esi, eax
test esi, esi
je 0x42fba3
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.004e0a60
mov edx, dword [ebp - 0x68]
push edx
call fcn.004e0a60
mov eax, dword [ebp - 0x90]
push eax
call fcn.004e0a60
add esp, 0xc
lea ecx, [ebp - 0x84]
push ecx
mov byte [ebp - 4], 1
call fcn.0041dbe0
mov edx, dword [ebp - 0x5c]
push edx
call fcn.004e0a60
add esp, 4
mov eax, esi
jmp 0x43037d
mov eax, dword [ebp - 0x70]
cmp eax, 5
ja case.default.0x42fbaf
jmp dword [eax*4 + 0x43042c]
mov eax, dword [ebp - 0x24]
push eax
call fcn.004e0a60
mov ecx, dword [ebp - 0x68]
push ecx
call fcn.004e0a60
mov edx, dword [ebp - 0x90]
push edx
call fcn.004e0a60
add esp, 0xc
lea eax, [ebp - 0x84]
push eax
mov byte [ebp - 4], 1
call fcn.0041dbe0
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.004e0a60
add esp, 4
mov eax, 0x80004004
jmp 0x43037d
mov edx, dword [ebp - 0x24]
push edx
call fcn.004e0a60
mov eax, dword [ebp - 0x68]
push eax
call fcn.004e0a60
mov ecx, dword [ebp - 0x90]
push ecx
call fcn.004e0a60
add esp, 0xc
jmp 0x42fa74
mov ecx, dword [ebp - 0x24]
push ecx
mov dword [edi + 0x34], 2
call fcn.004e0a60
mov edx, dword [ebp - 0x68]
push edx
call fcn.004e0a60
mov eax, dword [ebp - 0x90]
push eax
call fcn.004e0a60
add esp, 0xc
lea ecx, [ebp - 0x84]
push ecx
mov byte [ebp - 4], 1
call fcn.0041dbe0
mov edx, dword [ebp - 0x5c]
push edx
call fcn.004e0a60
add esp, 4
xor eax, eax
jmp 0x43037d
mov dword [edi + 0x34], 1
jmp case.0x42fbaf.0
mov dword [edi + 0x34], 3
mov eax, dword [edi + 0x34]
cmp eax, 3
jne 0x42fd45
lea eax, [ebp - 0x68]
push eax
call fcn.00424160
add esp, 4
test al, al
jne 0x42ff6e
push str.ERROR:_Can_not_create_file_with_auto_name
lea esi, [ebp - 0x9c]
call fcn.004035f0
lea ecx, [ebp - 0x68]
push ecx
push eax
lea edx, [ebp - 0xbc]
push edx
mov byte [ebp - 4], 9
call fcn.004217b0
add esp, 0xc
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x9c]
push eax
call fcn.004e0a60
mov edi, dword [edi + 0x18]
mov edx, dword [ebp - 0xbc]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x1c]
add esp, 4
push edx
push edi
call eax
mov ecx, dword [ebp - 0xbc]
push ecx
mov esi, eax
call fcn.004e0a60
mov edx, dword [ebp - 0x24]
push edx
call fcn.004e0a60
mov eax, dword [ebp - 0x68]
push eax
call fcn.004e0a60
mov ecx, dword [ebp - 0x90]
push ecx
call fcn.004e0a60
add esp, 0x10
lea edx, [ebp - 0x84]
push edx
mov byte [ebp - 4], 1
call fcn.0041dbe0
mov eax, dword [ebp - 0x5c]
push eax
call fcn.004e0a60
add esp, 4
test esi, esi
je 0x42f640
mov eax, esi
jmp 0x43037d
cmp eax, 4
jne 0x42ffb8
lea ecx, [ebp - 0x68]
push ecx
lea ecx, [ebp - 0xbc]
call fcn.00406fd0
lea edx, [ebp - 0xbc]
push edx
mov byte [ebp - 4], 0xc
call fcn.00424160
add esp, 4
test al, al
jne 0x42fe49
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp - 0x9c]
push str.ERROR:_Can_not_create_file_with_auto_name
push ecx
call fcn.004307e0
add esp, 0xc
mov byte [ebp - 4], 0xd
mov edi, dword [edi + 0x18]
mov eax, dword [ebp - 0x9c]
mov edx, dword [edi]
mov ecx, dword [edx + 0x1c]
push eax
push edi
call ecx
mov esi, eax
test esi, esi
je 0x42fdea
mov edx, dword [ebp - 0x9c]
push edx
call fcn.004e0a60
mov eax, dword [ebp - 0xbc]
push eax
call fcn.004e0a60
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.004e0a60
mov edx, dword [ebp - 0x68]
push edx
call fcn.004e0a60
mov eax, dword [ebp - 0x90]
push eax
call fcn.004e0a60
add esp, 0x14
jmp 0x42fb80
mov eax, dword [ebp - 0x9c]
push eax
call fcn.004e0a60
mov ecx, dword [ebp - 0xbc]
push ecx
call fcn.004e0a60
mov edx, dword [ebp - 0x24]
push edx
call fcn.004e0a60
mov eax, dword [ebp - 0x68]
push eax
call fcn.004e0a60
mov ecx, dword [ebp - 0x90]
push ecx
call fcn.004e0a60
add esp, 0x14
lea edx, [ebp - 0x84]
push edx
mov byte [ebp - 4], 1
call fcn.0041dbe0
mov eax, dword [ebp - 0x5c]
push eax
call fcn.004e0a60
add esp, 4
mov eax, 0x80004005
jmp 0x43037d
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ebp - 0x68]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x42ff5f
push str.ERROR:_Can_not_rename_existing_file
lea esi, [ebp - 0xa8]
call fcn.004035f0
lea ecx, [ebp - 0x68]
push ecx
push eax
lea edx, [ebp - 0x9c]
push edx
mov byte [ebp - 4], 0xe
call fcn.004217b0
add esp, 0xc
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0xa8]
push eax
call fcn.004e0a60
mov edi, dword [edi + 0x18]
mov edx, dword [ebp - 0x9c]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x1c]
add esp, 4
push edx
push edi
call eax
mov esi, eax
test esi, esi
je 0x42ff11
mov ecx, dword [ebp - 0x9c]
push ecx
call fcn.004e0a60
mov edx, dword [ebp - 0xbc]
push edx
call fcn.004e0a60
mov eax, dword [ebp - 0x24]
push eax
call fcn.004e0a60
mov ecx, dword [ebp - 0x68]
push ecx
call fcn.004e0a60
mov edx, dword [ebp - 0x90]
push edx
call fcn.004e0a60
add esp, 0x14
lea eax, [ebp - 0x84]
push eax
mov byte [ebp - 4], 1
call fcn.0041dbe0
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.004e0a60
add esp, 4
mov eax, esi
jmp 0x43037d
mov edx, dword [ebp - 0x9c]
push edx
call fcn.004e0a60
mov eax, dword [ebp - 0xbc]
push eax
call fcn.004e0a60
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.004e0a60
mov edx, dword [ebp - 0x68]
push edx
call fcn.004e0a60
mov eax, dword [ebp - 0x90]
push eax
call fcn.004e0a60
add esp, 0x14
lea ecx, [ebp - 0x84]
push ecx
mov byte [ebp - 4], 1
call fcn.0041dbe0
jmp 0x42f634
mov eax, dword [ebp - 0xbc]
push eax
call fcn.004e0a60
add esp, 4
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x24]
push eax
call fcn.004e0a60
mov esi, dword [ebp - 0x6c]
add esp, 4
cmp byte [ebp - 0x4d], 0
jne 0x430259
push 0x18
call fcn.00447180
add esp, 4
test eax, eax
je 0x4300a1
mov dword [eax + 4], 0
mov dword [eax], vtable.COutFileStream.0
mov dword [eax + 8], 0xffffffff
mov ebx, eax
jmp 0x4300a3
mov esi, dword [ebp - 0x68]
call fcn.004492b0
test al, al
jne 0x42ff6e
push 0x5173b8
lea esi, [ebp - 0xa8]
call fcn.004035f0
lea ecx, [ebp - 0x68]
push ecx
push eax
lea edx, [ebp - 0x9c]
push edx
mov byte [ebp - 4], 0x11
call fcn.004217b0
add esp, 0xc
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0xa8]
push eax
call fcn.004e0a60
mov edi, dword [edi + 0x18]
mov edx, dword [ebp - 0x9c]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x1c]
add esp, 4
push edx
push edi
call eax
mov ecx, dword [ebp - 0x9c]
push ecx
mov esi, eax
call fcn.004e0a60
mov edx, dword [ebp - 0x24]
push edx
call fcn.004e0a60
mov eax, dword [ebp - 0x68]
push eax
call fcn.004e0a60
mov ecx, dword [ebp - 0x90]
push ecx
call fcn.004e0a60
add esp, 0x10
lea edx, [ebp - 0x84]
jl 0x430043
invalid
call dword [edx - 0x3a]
inc ebp
cld
add eax, ebp
nop
invalid
invalid
dec dword [ebx - 0x17af5bbb]
pop es
or cl, byte [ebx]
add byte [ebx - 0x97afb3c], al
je 0x42f753
mov eax, esi
jmp 0x43037d
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.004e0a60
mov edx, dword [ebp - 0x68]
push edx
call fcn.004e0a60
mov eax, dword [ebp - 0x90]
push eax
call fcn.004e0a60
add esp, 0xc
lea ecx, [ebp - 0x84]
push ecx
mov byte [ebp - 4], 1
call fcn.0041dbe0
jmp 0x42f634
xor ebx, ebx
mov dword [esi + 0x94], ebx
mov dword [ebp - 0x70], ebx
test ebx, ebx
je 0x4300b8
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
push ebx
call edx
xor eax, eax
mov byte [ebp - 4], 0x14
cmp byte [esi + 0x58], al
mov ecx, dword [ebp - 0x68]
mov esi, dword [esi + 0x94]
setne al
lea eax, [eax + eax + 2]
push eax
push ecx
call fcn.0042eae0
test al, al
jne 0x4301cb
lea edx, [ebp - 0x68]
push edx
lea eax, [ebp - 0x9c]
push str.can_not_open_output_file
push eax
call fcn.004307e0
add esp, 0xc
mov ecx, dword [ebp - 0x6c]
mov byte [ebp - 4], 0x15
mov eax, dword [ecx + 0x18]
mov ecx, dword [ebp - 0x9c]
mov edx, dword [eax]
mov edx, dword [edx + 0x1c]
push ecx
push eax
call edx
mov esi, eax
test esi, esi
je 0x430171
mov eax, dword [ebp - 0x9c]
push eax
call fcn.004e0a60
add esp, 4
mov byte [ebp - 4], 7
test ebx, ebx
je 0x430136
mov ecx, dword [ebx]
mov edx, dword [ecx + 8]
push ebx
call edx
mov eax, dword [ebp - 0x68]
push eax
call fcn.004e0a60
mov ecx, dword [ebp - 0x90]
push ecx
call fcn.004e0a60
add esp, 8
lea edx, [ebp - 0x84]
push edx
mov byte [ebp - 4], 1
call fcn.0041dbe0
mov eax, dword [ebp - 0x5c]
push eax
call fcn.004e0a60
add esp, 4
mov eax, esi
jmp 0x43037d
mov ecx, dword [ebp - 0x9c]
push ecx
call fcn.004e0a60
add esp, 4
mov byte [ebp - 4], 7
test ebx, ebx
je 0x430190
mov edx, dword [ebx]
mov eax, dword [edx + 8]
push ebx
call eax
mov ecx, dword [ebp - 0x68]
push ecx
call fcn.004e0a60
mov edx, dword [ebp - 0x90]
push edx
call fcn.004e0a60
add esp, 8
lea eax, [ebp - 0x84]
push eax
mov byte [ebp - 4], 1
call fcn.0041dbe0
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.004e0a60
add esp, 4
xor eax, eax
jmp 0x43037d
mov esi, dword [ebp - 0x6c]
cmp byte [esi + 0x58], 0
je 0x43023f
mov ecx, dword [esi + 0x54]
mov eax, dword [esi + 0x94]
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
push 0
push 0
push ecx
mov ecx, dword [esi + 0x50]
push ecx
push eax
call edx
mov edi, eax
test edi, edi
je 0x43023f
mov byte [ebp - 4], 7
test ebx, ebx
je 0x430204
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
push ebx
call ecx
mov edx, dword [ebp - 0x68]
push edx
call fcn.004e0a60
mov eax, dword [ebp - 0x90]
push eax
call fcn.004e0a60
add esp, 8
lea ecx, [ebp - 0x84]
push ecx
mov byte [ebp - 4], 1
call fcn.0041dbe0
mov edx, dword [ebp - 0x5c]
push edx
call fcn.004e0a60
add esp, 4
mov eax, edi
jmp 0x43037d
lea edi, [esi + 0x98]
lea eax, [ebp - 0x70]
call fcn.004307b0
mov eax, dword [ebp - 0xb0]
mov dword [eax], ebx
mov byte [ebp - 4], 7
lea eax, [esi + 0x38]
lea edi, [ebp - 0x68]
call fcn.004061d0
mov ecx, dword [ebp - 0x68]
push ecx
call fcn.004e0a60
mov edx, dword [ebp - 0x90]
push edx
call fcn.004e0a60
add esp, 8
lea eax, [ebp - 0x84]
push eax
mov byte [ebp - 4], 1
call fcn.0041dbe0
mov ebx, dword [ebp - 0x6c]
jmp 0x4302be
lea ecx, [ebp - 0xac]
call fcn.00403e90
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.004e0a60
add esp, 4
mov eax, 0x80004005
jmp 0x43037d
mov edx, dword [ebp - 0xb0]
mov dword [edx], 0
cmp byte [ebx + 0xba], 0
je 0x430362
push 0x20
call fcn.00447180
xor ecx, ecx
add esp, 4
cmp eax, ecx
je 0x4302e9
mov dword [eax + 4], ecx
mov dword [eax], vtable.COutStreamWithCRC.0
mov dword [eax + 8], ecx
jmp 0x4302eb
xor eax, eax
lea edi, [ebx + 0xa0]
mov esi, eax
mov dword [ebx + 0x9c], eax
call fcn.004263d0
mov eax, dword [ebx + 0x9c]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0xc0], eax
test eax, eax
je 0x430319
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, dword [ebp - 0xb0]
mov byte [ebp - 4], 0x16
mov esi, dword [eax]
mov edi, dword [ebx + 0x9c]
call fcn.00408bc0
mov esi, dword [ebp - 0xb0]
mov eax, dword [esi]
xor edi, edi
cmp eax, edi
je 0x430346
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x70]
mov dword [esi], eax
mov eax, dword [ebx + 0x9c]
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], edi
mov byte [eax + 0x1c], 1
mov dword [eax + 0x18], 0xffffffff
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.004e0a60
add esp, 4
xor eax, eax
jmp 0x43037d
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004e0a00
mov esp, ebp
pop ebp
ret 0x10