Function at 0x4137b0
Capabilities:
Delete file

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x429e2c
push eax
mov dword fs:[0], esp
sub esp, 0x120
push ebx
push ebp
push esi
push edi
mov esi, ecx
call fcn.0041b390
test al, al
je 0x413aba
push 0x43
mov ecx, esi
call fcn.00415250
lea eax, [esp + 0x30]
lea ecx, [esi + 0x2e0]
push eax
push 0x80
call fcn.004237d0
mov al, byte [esp + 0x30]
mov dl, byte [esp + 0x32]
mov cl, byte [esp + 0x31]
and al, 0xf
cmp al, 4
jne 0x413817
cmp cl, 2
jne 0x413817
cmp dl, cl
je 0x413854
cmp al, 4
jne 0x413aac
cmp cl, 2
jne 0x413829
cmp dl, 3
je 0x413854
cmp al, 4
jne 0x413aac
cmp cl, 2
jne 0x41383a
cmp dl, al
je 0x413854
cmp al, 4
jne 0x413aac
cmp cl, 2
jne 0x413aac
cmp dl, 5
jne 0x413aac
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x433004
call sub.MFC42.DLL_CString::CString_2
mov ecx, esi
call fcn.0040c920
test eax, eax
je 0x413aba
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x433688
call sub.MFC42.DLL_CString::CString_2
mov ecx, esi
call fcn.0040ced0
test eax, eax
je 0x413aba
push str.shengji_soft_boot33_
lea ecx, [esp + 0x2c]
push 0x434a44
push ecx
call sub.MFC42.DLL_operator_1
push str.shangboot.bin
lea edx, [esp + 0x30]
push eax
push edx
mov dword [esp + 0x144], 0
call sub.MFC42.DLL_operator_1
push eax
lea ecx, [esi + 0x32c]
mov byte [esp + 0x13c], 1
call fcn.00426e04
lea ecx, [esp + 0x2c]
mov byte [esp + 0x138], 0
call sub.MFC42.DLL_CString::CString
or edi, 0xffffffff
lea ecx, [esp + 0x28]
mov dword [esp + 0x138], edi
call sub.MFC42.DLL_CString::CString
mov ecx, esi
call fcn.00409530
test al, al
je 0x413aba
lea ebx, [esi + 0x330]
lea ecx, [esp + 0x10]
push ebx
call sub.MFC42.DLL_CString::CString_3
lea ecx, [esp + 0x18]
mov dword [esp + 0x138], 2
call sub.MFC42.DLL_CFile::CFile_1
mov eax, dword [esp + 0x10]
push 0
push 0
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x144], 3
call sub.MFC42.DLL_CFile::Open
test eax, eax
jne 0x41398a
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call sub.MFC42.DLL_CString::CString_3
mov ecx, esi
call fcn.00417250
lea ecx, [esp + 0x18]
mov byte [esp + 0x138], 2
call sub.MFC42.DLL_CFile::CFile
lea ecx, [esp + 0x10]
mov dword [esp + 0x138], edi
call sub.MFC42.DLL_CString::CString
jmp 0x413aba
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CFile::GetLength
mov ebp, eax
push ebp
call sub.MFC42.DLL_operatornew
add esp, 4
mov edi, eax
lea ecx, [esp + 0x18]
push ebp
push edi
call sub.MFC42.DLL_CFile::Read
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CFile::Close
mov ebx, dword [ebx]
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [esi + 0x36c]
lea ebx, [esi + 0x2e0]
add eax, edi
mov ecx, ebx
push eax
call fcn.00420480
test al, al
jne 0x4139f0
push edi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, esi
push 0xa
push 0xd
call fcn.00406e80
jmp 0x413a85
add ebp, 0xfffffcf0
lea ecx, [edi + 0x300]
push ebp
push ecx
mov ecx, ebx
call fcn.00424b60
test al, al
je 0x413a73
cmp al, 1
jne 0x413a35
mov dx, word [esi + 0x210]
push 1
sub esp, 0x44
lea eax, [esi + 0x298]
mov ecx, esp
mov dword [esp + 0x5c], esp
push eax
mov word [eax], dx
call fcn.004065e0
mov ecx, ebx
call fcn.00424490
push 0x47
mov ecx, esi
call fcn.00415250
push edi
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x18]
mov byte [esp + 0x138], 2
call sub.MFC42.DLL_CFile::CFile
lea ecx, [esp + 0x10]
mov dword [esp + 0x138], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 1
jmp 0x413abc
push 0x48
mov ecx, esi
call fcn.00415250
push edi
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x18]
mov byte [esp + 0x138], 2
call sub.MFC42.DLL_CFile::CFile
lea ecx, [esp + 0x10]
mov dword [esp + 0x138], 0xffffffff
call sub.MFC42.DLL_CString::CString
jmp 0x413aba
push 0
push 0
push str.Unknown_Version_for_Encrypt_Program
call sub.MFC42.DLL_AfxMessageBox
xor eax, eax
mov ecx, dword [esp + 0x130]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x12c
ret