Function at 0x415c40
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5c2176
mov eax, dword fs:[0]
push eax
sub esp, 0x6e8
mov eax, dword [0x629af0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x6b4], ecx
mov dword [ebp - 4], 0
push 0
push 0x601344
mov ecx, dword [ebp + 8]
call fcn.00409a60
push eax
push 0
lea eax, [ebp - 0xe8]
push eax
mov ecx, dword [ebp + 8]
call fcn.004166c0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xe8]
call fcn.004099f0
push eax
lea ecx, [ebp - 0x5c]
call fcn.00409310
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x5c]
call fcn.00402cc0
push eax
lea ecx, [ebp - 0xcc]
call fcn.004167d0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xcc]
call fcn.00416620
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [ebp + 0xc], 0
jne 0x415d35
mov dword [ebp - 0xec], 0xffffffff
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xcc]
call fcn.00409390
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x5c]
call fcn.00409390
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xe8]
call fcn.004098e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x18]
call fcn.004098e0
mov eax, dword [ebp - 0xec]
jmp 0x4163f5
lea ecx, [ebp - 0x58]
call fcn.004135c0
mov ecx, dword [ebp + 0x14]
push ecx
lea ecx, [ebp - 0x58]
call fcn.00413650
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x58], 0
jne 0x415da3
mov dword [ebp - 0xf0], 0xfffffffe
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xcc]
call fcn.00409390
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x5c]
call fcn.00409390
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xe8]
call fcn.004098e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x18]
call fcn.004098e0
mov eax, dword [ebp - 0xf0]
jmp 0x4163f5
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp + 0x14]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.00430750
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x415e5a
lea edx, [ebp - 0x17c]
push edx
mov ecx, 0x632cd8
call fcn.0042af50
mov dword [ebp - 0x6b8], eax
mov eax, dword [ebp - 0x6b8]
mov dword [ebp - 0x6bc], eax
mov byte [ebp - 4], 4
push 0x601388
mov ecx, dword [ebp + 8]
push ecx
push 0x601384
push 0x601378
lea edx, [ebp - 0x14]
push edx
push str.uncompressfileMem_Error
push 0x60134c
mov ecx, dword [ebp - 0x6bc]
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040ead0
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040ece0
mov ecx, eax
call fcn.0040eb00
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x17c]
call fcn.0042ad30
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp + 0x14]
je 0x415f45
lea ecx, [ebp - 0x208]
push ecx
mov ecx, 0x632cd8
call fcn.0042af50
mov dword [ebp - 0x6c0], eax
mov edx, dword [ebp - 0x6c0]
mov dword [ebp - 0x6c4], edx
mov byte [ebp - 4], 5
push 0x601400
mov eax, dword [ebp + 8]
push eax
push 0x6013fc
push str.strZipName
push 0x6013ec
lea ecx, [ebp + 0x14]
push ecx
push 0x6013e8
push str.nOutSize
push 0x6013d8
lea edx, [ebp - 0x60]
push edx
push 0x6013d4
push str.nOldOutSize
push str.uncompressfileMem_nOldOutSize___nOutSize
push 0x60138c
mov ecx, dword [ebp - 0x6c4]
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040ead0
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040ead0
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040ece0
mov ecx, eax
call fcn.0040eb00
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x208]
call fcn.0042ad30
lea ecx, [ebp + 0x18]
call fcn.004099f0
push eax
lea ecx, [ebp - 0x50]
call fcn.004167d0
mov byte [ebp - 4], 6
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
lea edx, [ebp - 0x274]
push edx
call fcn.00414910
add esp, 0xc
mov ecx, 0xc
mov esi, eax
lea edi, [ebp - 0x239]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov ecx, 0xc
lea esi, [ebp - 0x239]
lea edi, [ebp - 0x94]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
lea edx, [ebp - 0x2e4]
push edx
call fcn.00414910
add esp, 0xc
mov ecx, 0xc
mov esi, eax
lea edi, [ebp - 0x2a5]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov ecx, 0xc
lea esi, [ebp - 0x2a5]
lea edi, [ebp - 0xc8]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0xb8]
push eax
lea ecx, [ebp - 0x50]
call fcn.00416620
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x4160b2
lea ecx, [ebp - 0x50]
call fcn.00416620
mov dword [ebp - 0x374], eax
lea ecx, [ebp - 0x370]
push ecx
mov ecx, 0x632cd8
call fcn.0042af50
mov dword [ebp - 0x6c8], eax
mov edx, dword [ebp - 0x6c8]
mov dword [ebp - 0x6cc], edx
mov byte [ebp - 4], 7
push 0x601464
lea eax, [ebp - 0xb8]
push eax
push 0x601460
push str.dstmd5.md5str
push 0x60144c
lea ecx, [ebp - 0x374]
push ecx
push 0x601448
push 0x601434
push str.uncompressfileMem_mem_md5_error
push 0x601404
mov ecx, dword [ebp - 0x6cc]
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040ea00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x370]
call fcn.0042ad30
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp - 0x18]
push eax
lea ecx, [ebp - 0xcc]
call fcn.00416620
push eax
call fcn.004137d0
add esp, 0xc
lea ecx, [ebp - 0x58]
call fcn.004135f0
lea ecx, [ebp - 0xcc]
call fcn.00416620
push eax
lea ecx, [ebp - 0x3e4]
push ecx
call fcn.004149f0
add esp, 8
mov ecx, 0xc
mov esi, eax
lea edi, [ebp - 0x3a5]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov ecx, 0xc
lea esi, [ebp - 0x3a5]
lea edi, [ebp - 0x4c]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
lea edx, [ebp - 0x470]
push edx
mov ecx, 0x632cd8
call fcn.0042af50
mov dword [ebp - 0x6d0], eax
mov eax, dword [ebp - 0x6d0]
mov dword [ebp - 0x6d4], eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x3c]
push ecx
push str.file_md5_
mov ecx, dword [ebp - 0x6d4]
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x470]
call fcn.0042ad30
lea edx, [ebp - 0x3c]
push edx
lea ecx, [ebp - 0x50]
call fcn.00416620
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x4163a0
lea ecx, [ebp - 0x50]
call fcn.00416620
mov dword [ebp - 0x500], eax
lea eax, [ebp - 0x4fc]
push eax
mov ecx, 0x632cd8
call fcn.0042af50
mov dword [ebp - 0x6d8], eax
mov ecx, dword [ebp - 0x6d8]
mov dword [ebp - 0x6dc], ecx
mov byte [ebp - 4], 9
lea edx, [ebp - 0x500]
push edx
push str.ok_md5_
mov ecx, dword [ebp - 0x6dc]
call fcn.0040eb00
mov ecx, eax
call fcn.0040ea00
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x4fc]
call fcn.0042ad30
lea eax, [ebp - 0x58c]
push eax
mov ecx, 0x632cd8
call fcn.0042af50
mov dword [ebp - 0x6e0], eax
mov ecx, dword [ebp - 0x6e0]
mov dword [ebp - 0x6e4], ecx
mov byte [ebp - 4], 0xa
lea edx, [ebp - 0x84]
push edx
push str.src_md5_
mov ecx, dword [ebp - 0x6e4]
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x58c]
call fcn.0042ad30
lea eax, [ebp - 0x618]
push eax
mov ecx, 0x632cd8
call fcn.0042af50
mov dword [ebp - 0x6e8], eax
mov ecx, dword [ebp - 0x6e8]
mov dword [ebp - 0x6ec], ecx
mov byte [ebp - 4], 0xb
lea edx, [ebp - 0xb8]
push edx
push str.dst_md5_
mov ecx, dword [ebp - 0x6ec]
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x618]
call fcn.0042ad30
lea ecx, [ebp - 0x50]
call fcn.00416620
mov dword [ebp - 0x6a8], eax
lea eax, [ebp - 0x6a4]
push eax
mov ecx, 0x632cd8
call fcn.0042af50
mov dword [ebp - 0x6f0], eax
mov ecx, dword [ebp - 0x6f0]
mov dword [ebp - 0x6f4], ecx
mov byte [ebp - 4], 0xc
push 0x6014fc
lea edx, [ebp - 0x3c]
push edx
push 0x6014f8
push str.filemd5.md5str
push 0x6014e4
lea eax, [ebp - 0x6a8]
push eax
push 0x6014e0
push str.caokmd5.GetBuffer__
push str.uncompressfileMem_file_md5_error
push 0x601498
mov ecx, dword [ebp - 0x6f4]
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040ea00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov ecx, eax
call fcn.0040eb00
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x6a4]
call fcn.0042ad30
mov dword [ebp - 0x6ac], 0xffffff9c
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x50]
call fcn.00409390
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xcc]
call fcn.00409390
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x5c]
call fcn.00409390
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xe8]
call fcn.004098e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x18]
call fcn.004098e0
mov eax, dword [ebp - 0x6ac]
jmp 0x4163f5
mov dword [ebp - 0x6b0], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x50]
call fcn.00409390
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xcc]
call fcn.00409390
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x5c]
call fcn.00409390
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xe8]
call fcn.004098e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x18]
call fcn.004098e0
mov eax, dword [ebp - 0x6b0]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0057976c
mov esp, ebp
pop ebp
ret 0x2c