Function at 0x4020e3
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc68
mov eax, dword [ebp + 0x20]
mov byte [ebp - 0xc3c], al
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x28], 0
cmp dword [ebp + 8], 0
je 0x40214c
cmp dword [ebp + 0xc], 0
je 0x40214c
cmp dword [ebp + 0x18], 0
je 0x40214c
cmp dword [ebp + 0x1c], 0
jne 0x40217e
mov dword [esp + 8], 0x19b
mov dword [esp + 4], str.genSecureInfo
mov dword [esp], str.e_0_31m_ERROR___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov dword [esp], str.The_input_parameter_is_a_null_pointer
call sub.msvcrt.dll_puts
mov eax, 0xffffffff
jmp 0x402870
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x30]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00401ceb
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xffffffff
jne 0x4021d8
mov dword [esp + 8], 0x1a2
mov dword [esp + 4], str.genSecureInfo
mov dword [esp], str.e_0_31m_ERROR___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
mov dword [esp], str._ERROR__get__s_size_fail_n
call sub.msvcrt.dll_printf
mov eax, 0xffffffff
jmp 0x402870
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x402219
mov dword [esp + 8], 0x1a5
mov dword [esp + 4], str.genSecureInfo
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov eax, dword [ebp - 0x30]
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
mov dword [esp], str.The_size_of__s_is_0x_x_n
call sub.msvcrt.dll_printf
mov eax, dword [ebp - 0x30]
mov edx, 0
div dword [ebp + 0x24]
cmp eax, dword [ebp + 0x10]
jae 0x402278
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x402267
mov dword [esp + 8], 0x1aa
mov dword [esp + 4], str.genSecureInfo
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov eax, dword [ebp + 0x24]
imul eax, dword [ebp + 0x10]
mov dword [esp + 4], eax
mov dword [esp], str.This_image_size_is_smaller_than_0x_x_n
call sub.msvcrt.dll_printf
mov eax, dword [ebp - 0x30]
mov edx, 0
div dword [ebp + 0x24]
add eax, 1
mov dword [ebp + 0x10], eax
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x14], 0
jmp 0x402738
cmp byte [ebp - 0xc3c], 1
jne 0x402425
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x4022d2
mov dword [esp + 8], 0x1b5
mov dword [esp + 4], str.genSecureInfo
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], eax
mov dword [esp], str.fileSize0x_x_n
call sub.msvcrt.dll_printf
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x40230c
mov dword [esp + 8], 0x1b6
mov dword [esp + 4], str.genSecureInfo
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov eax, dword [ebp + 0x24]
mov dword [esp + 4], eax
mov dword [esp], str.blockSize0x_x_n
call sub.msvcrt.dll_printf
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x402346
mov dword [esp + 8], 0x1b7
mov dword [esp + 4], str.genSecureInfo
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], eax
mov dword [esp], str.segmentNum_x_n
call sub.msvcrt.dll_printf
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp + 0x10]
jb 0x40236b
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp + 0x24]
cmp eax, edx
jbe 0x40235a
mov eax, edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp + 0x24]
mov dword [ebp - 0x30], eax
jmp 0x402452
mov eax, dword [ebp - 0x30]
mov edx, 0
div dword [ebp + 0x24]
mov edx, 0
div dword [ebp + 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x30]
mov edx, 0
div dword [ebp + 0x24]
mov edx, 0
div dword [ebp + 0x10]
mov dword [ebp - 0x24], edx
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x4023d1
mov dword [esp + 8], 0x1c1
mov dword [esp + 4], str.genSecureInfo
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov eax, dword [ebp - 0x20]
mov dword [esp + 4], eax
mov dword [esp], str.m_x_n
call sub.msvcrt.dll_printf
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x40240b
mov dword [esp + 8], 0x1c2
mov dword [esp + 4], str.genSecureInfo
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov eax, dword [ebp - 0x24]
mov dword [esp + 4], eax
mov dword [esp], str.n_x_n
call sub.msvcrt.dll_printf
mov eax, dword [ebp - 0x20]
imul eax, dword [ebp + 0x24]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x24]
jae 0x402452
mov eax, dword [ebp + 0x24]
add dword [ebp - 0x10], eax
jmp 0x402452
mov eax, dword [ebp - 0x30]
mov edx, 0
div dword [ebp + 0x10]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x30]
mov edx, 0
div dword [ebp + 0x10]
mov eax, edx
add dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x1c]
cmp eax, edx
jbe 0x40244f
mov eax, edx
mov dword [ebp - 0x10], eax
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x40249a
mov dword [esp + 8], 0x1d1
mov dword [esp + 4], str.genSecureInfo
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov eax, dword [ebp - 0xc]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x10]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x14]
mov dword [esp + 4], eax
mov dword [esp], str.segment_number_x_size_x_offset_x_n
call sub.msvcrt.dll_printf
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
lea eax, [ebp - 0xc30]
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov eax, dword [ebp - 0x14]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 8]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s._d
lea eax, [ebp - 0xc30]
mov dword [esp], eax
call sub.msvcrt.dll_sprintf
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x402519
mov dword [esp + 8], 0x1d4
mov dword [esp + 4], str.genSecureInfo
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
lea eax, [ebp - 0xc30]
mov dword [esp + 4], eax
mov dword [esp], str.tempBuf_s_n
call sub.msvcrt.dll_printf
movzx eax, byte [ebp - 0xc3c]
mov edx, dword [ebp + 0x24]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xc]
mov dword [esp + 8], eax
lea eax, [ebp - 0xc30]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00401deb
cmp eax, 0xffffffff
jne 0x402585
mov dword [esp + 8], 0x1d7
mov dword [esp + 4], str.genSecureInfo
mov dword [esp], str.e_0_31m_ERROR___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov dword [esp], str._ERROR__create_sub_file_fail
call sub.msvcrt.dll_puts
mov eax, 0xffffffff
jmp 0x402870
cmp byte [ebp - 0xc3c], 1
jne 0x4025d0
mov eax, dword [ebp + 0x24]
add dword [ebp - 0xc], eax
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x4025d6
mov dword [esp + 8], 0x1de
mov dword [esp + 4], str.genSecureInfo
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov eax, dword [ebp + 0x24]
mov dword [esp + 4], eax
mov dword [esp], str.blockSize_x_n
call sub.msvcrt.dll_printf
jmp 0x4025d6
mov eax, dword [ebp - 0x10]
add dword [ebp - 0xc], eax
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
lea eax, [ebp - 0x830]
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov eax, dword [ebp - 0x14]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s._d
lea eax, [ebp - 0x830]
mov dword [esp], eax
call sub.msvcrt.dll_sprintf
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x402655
mov dword [esp + 8], 0x1e7
mov dword [esp + 4], str.genSecureInfo
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
lea eax, [ebp - 0x830]
mov dword [esp + 4], eax
mov dword [esp], str.nameBuf_s_n
call sub.msvcrt.dll_printf
movzx eax, byte [ebp - 0xc3c]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0xc30]
mov dword [esp + 8], eax
lea eax, [ebp - 0x830]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x14]
mov dword [esp], eax
call fcn.00401544
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
jns 0x4026b3
mov dword [esp], str._ERROR_Generate_sub_secure_info_fail
call sub.msvcrt.dll_puts
mov eax, 0xffffffff
jmp 0x402870
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
lea eax, [ebp - 0x430]
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
lea eax, [ebp - 0x830]
mov dword [esp], eax
call fcn.00402872
lea eax, [ebp - 0xc30]
mov dword [esp], eax
call sub.msvcrt.dll_remove
test eax, eax
je 0x402734
mov dword [esp + 8], 0x1f8
mov dword [esp + 4], str.genSecureInfo
mov dword [esp], str.e_0_31m_ERROR___s:_d:_e_0m
call sub.msvcrt.dll_printf
lea eax, [ebp - 0xc30]
mov dword [esp + 4], eax
mov dword [esp], str._ERROR__remove__s_fail_n
call sub.msvcrt.dll_printf
mov eax, 0xffffffff
jmp 0x402870
add dword [ebp - 0x14], 1
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp + 0x10]
jb 0x40228b
jmp 0x40277d
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
lea eax, [ebp - 0x430]
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
lea eax, [ebp - 0x830]
mov dword [esp], eax
call fcn.00402872
add dword [ebp + 0x10], 1
mov eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x2c]
jne 0x402746
mov dword [ebp - 0x18], 0
jmp 0x40285f
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
lea eax, [ebp - 0x830]
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov eax, dword [ebp - 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s._d
lea eax, [ebp - 0x830]
mov dword [esp], eax
call sub.msvcrt.dll_sprintf
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x402810
mov dword [esp + 8], 0x20e
mov dword [esp + 4], str.genSecureInfo
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
lea eax, [ebp - 0x830]
mov dword [esp + 4], eax
mov dword [esp], str.nameBuf_s_n
call sub.msvcrt.dll_printf
lea eax, [ebp - 0x830]
mov dword [esp], eax
call sub.msvcrt.dll_remove
test eax, eax
je 0x40285b
mov dword [esp + 8], 0x211
mov dword [esp + 4], str.genSecureInfo
mov dword [esp], str.e_0_31m_ERROR___s:_d:_e_0m
call sub.msvcrt.dll_printf
lea eax, [ebp - 0x830]
mov dword [esp + 4], eax
mov dword [esp], str._ERROR__remove__s_fail_n
call sub.msvcrt.dll_printf
mov eax, 0xffffffff
jmp 0x402870
add dword [ebp - 0x18], 1
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x14]
jb 0x402791
mov eax, 0
leave
ret