Function at 0x422b80
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.004029c0
mov esi, eax
cmp esi, ebp
jne 0x422ba7
pop edi
pop esi
pop ebp
xor ax, ax
pop ebx
add esp, 0x3c
ret
mov eax, dword [0x4514d8]
mov ecx, eax
inc eax
mov dword [0x4514d8], 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 0x422be6
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 0x422bec
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, ebp
jle 0x422c21
cmp byte [ecx + ebx - 1], 0x5c
je 0x422c21
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov cx, word [0x44f864]
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 0x422c78
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 [0x451574]
mov esi, dword [esp + 0x50]
test byte [eax + 0x15], 0x80
je 0x422d5c
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 0x422dbe
mov eax, dword [esp + 0x50]
lea edx, [esp + 0x10]
add eax, 0x10
push edx
push eax
call fcn.0041ccc0
add esp, 8
test eax, eax
jne 0x422cca
mov ebp, 8
jmp 0x422dbe
mov ecx, dword [esp + 0x10]
push esi
push ecx
call fcn.00404f70
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x422d4d
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.0041ccc0
add esp, 8
test eax, eax
je 0x422d48
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.0041cd50
add esp, 4
jmp 0x422dbe
mov ebp, 8
lea eax, [esp + 0x10]
push eax
call fcn.0041cd50
add esp, 4
jmp 0x422dbe
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 0x422dbe
mov eax, dword [esp + 0x48]
lea edx, [esp + 0x14]
add eax, 4
push edx
push eax
call fcn.0041ccc0
add esp, 8
test eax, eax
jne 0x422d90
mov ebp, 8
jmp 0x422dbe
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 0x422dbe
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x48]
sub eax, edx
push eax
push esi
push edi
call fcn.00416260
add esp, 0xc
mov ebp, eax
push edi
call dword [sym.imp.MMFS2.dll_Ordinal_419]
test ebp, ebp
jne 0x422df8
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [0x451574]
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 0x422e06
jmp 0x422dfc
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.0041cd50
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