Function at 0x423220
Capabilities:
Delete file

Disassembly:
sub esp, 0x3c
push ebx
push ebp
push esi
xor ebp, ebp
push edi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], ebp
call fcn.004029f0
mov esi, eax
cmp esi, ebp
jne 0x423247
pop edi
pop esi
pop ebp
xor ax, ax
pop ebx
add esp, 0x3c
ret
mov eax, dword [0x4524e8]
mov ecx, eax
inc eax
mov dword [0x4524e8], eax
push ecx
lea eax, [esp + 0x24]
push str.Mid_d.mid
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
push 1
push 0x104
call dword [sym.imp.MSVCRT.dll_calloc]
mov ebx, eax
add esp, 0x14
cmp ebx, ebp
jne 0x423286
pop edi
pop esi
pop ebp
xor ax, ax
pop ebx
add esp, 0x3c
ret
mov edx, ebx
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x42328c
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, ebp
jle 0x4232c1
cmp byte [ecx + ebx - 1], 0x5c
je 0x4232c1
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov cx, word [0x4508b8]
mov word [edi - 1], cx
lea edi, [esp + 0x20]
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.MMFS2.dll_Ordinal_420]
mov edi, eax
cmp edi, 0xffffffff
mov dword [esp + 0x18], edi
jne 0x423318
push ebx
call dword [sym.imp.MSVCRT.dll_remove]
push ebx
call dword [sym.imp.MSVCRT.dll_free]
add esp, 8
xor ax, ax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
mov eax, dword [0x45258c]
mov esi, dword [esp + 0x50]
test byte [eax + 0x15], 0x80
je 0x4233fc
lea ecx, [esp + 0x50]
push 4
push ecx
push esi
mov dword [esp + 0x1c], ebp
call dword [sym.imp.MMFS2.dll_Ordinal_425]
mov ebp, eax
test ebp, ebp
jne 0x42345e
mov eax, dword [esp + 0x50]
lea edx, [esp + 0x10]
add eax, 0x10
push edx
push eax
call fcn.0041d130
add esp, 8
test eax, eax
jne 0x42336a
mov ebp, 8
jmp 0x42345e
mov ecx, dword [esp + 0x10]
push esi
push ecx
call fcn.00404fe0
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x4233ed
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x50]
mov eax, dword [ecx + 0x14]
sub edx, eax
sub edx, 0x18
lea eax, [eax + ecx + 0x18]
push edx
push eax
push edi
call dword [sym.imp.MMFS2.dll_Ordinal_433]
mov edx, dword [esp + 0x10]
mov ebp, eax
lea ecx, [esp + 0x14]
mov eax, dword [edx + 0x14]
push ecx
add eax, 4
push eax
call fcn.0041d130
add esp, 8
test eax, eax
je 0x4233e8
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov ecx, dword [eax + 0x14]
lea esi, [eax + 0x18]
mov edx, ecx
lea eax, [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x1c]
call fcn.0041d1c0
add esp, 4
jmp 0x42345e
mov ebp, 8
lea eax, [esp + 0x10]
push eax
call fcn.0041d1c0
add esp, 4
jmp 0x42345e
lea ecx, [esp + 0x34]
push 0x18
push ecx
push esi
call dword [sym.imp.MMFS2.dll_Ordinal_425]
mov ebp, eax
test ebp, ebp
jne 0x42345e
mov eax, dword [esp + 0x48]
lea edx, [esp + 0x14]
add eax, 4
push edx
push eax
call fcn.0041d130
add esp, 8
test eax, eax
jne 0x423430
mov ebp, 8
jmp 0x42345e
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x14]
push ecx
push edx
push esi
call dword [sym.imp.MMFS2.dll_Ordinal_425]
mov ebp, eax
test ebp, ebp
jne 0x42345e
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x48]
sub eax, edx
push eax
push esi
push edi
call fcn.004166c0
add esp, 0xc
mov ebp, eax
push edi
call dword [sym.imp.MMFS2.dll_Ordinal_419]
test ebp, ebp
jne 0x423498
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [0x45258c]
repne scasb al, byte es:[edi]
mov eax, dword [edx + 0x1c4]
not ecx
push ecx
mov ecx, dword [esp + 0x18]
push ebx
push ecx
push 2
push eax
call sub.MMFS2.dll_Ordinal_185
mov esi, eax
test si, si
jne 0x4234a6
jmp 0x42349c
mov esi, dword [esp + 0x1c]
push ebx
call dword [sym.imp.MSVCRT.dll_remove]
add esp, 4
lea ecx, [esp + 0x14]
push ecx
call fcn.0041d1c0
push ebx
call dword [sym.imp.MSVCRT.dll_free]
add esp, 8
mov ax, si
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret