Function at 0x40294b
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x850
mov eax, dword [ebp + 8]
mov byte [esp + 0x2c], al
call fcn.00403680
mov byte [esp + 0x84b], 0
mov byte [esp + 0x84a], 0
mov dword [esp + 0x844], 0
mov dword [esp + 0x840], 0
mov dword [esp + 0x83c], 0
mov dword [esp + 0x84c], 0
cmp byte [esp + 0x2c], 0xa
jg 0x402a2f
mov dword [esp], str.argv_1__The_output_file_name
call sub.msvcrt.dll_puts
mov dword [esp], str.argv_2__The_input_file_name
call sub.msvcrt.dll_puts
mov dword [esp], str.argv_3__The_path_of_private_key
call sub.msvcrt.dll_puts
mov dword [esp], str.argv_4__The_path_of_public_key
call sub.msvcrt.dll_puts
mov dword [esp], str.argv_5__1:Enable_partial_authentication._0:Disable_partial_authentication
call sub.msvcrt.dll_puts
mov dword [esp], str.argv_6__number_for_partial_authentication
call sub.msvcrt.dll_puts
mov dword [esp], str.argv_7__1:Enable_interleave_mode._0:Disable_interleave_mode
call sub.msvcrt.dll_puts
mov dword [esp], str.argv_8__The_Block_size_for_interleave_mode_unit:bytes_
call sub.msvcrt.dll_puts
mov dword [esp], str.argv_9__1Enable_debugging_info.0:Disable_debugging_info
call sub.msvcrt.dll_puts
mov dword [esp], str.argv_10__externel_utility_tool_path
call sub.msvcrt.dll_puts
mov eax, 0xffffffff
jmp 0x403180
mov eax, dword [ebp + 0xc]
add eax, 0x24
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00401440
mov byte [0x40f020], al
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x402a77
mov dword [esp + 8], 0x255
mov dword [esp + 4], str.main
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov dword [esp], str.Enable_displaying_debugging_info
call sub.msvcrt.dll_puts
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x402ab6
mov dword [esp + 8], 0x256
mov dword [esp + 4], str.main
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov eax, dword [ebp + 0xc]
add eax, 4
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], str.OUTPUT_FILE_NAME_s_n
call sub.msvcrt.dll_printf
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x402af5
mov dword [esp + 8], 0x257
mov dword [esp + 4], str.main
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov eax, dword [ebp + 0xc]
add eax, 8
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], str.INPUT_FILE_NAME_s_n
call sub.msvcrt.dll_printf
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x402b34
mov dword [esp + 8], 0x258
mov dword [esp + 4], str.main
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov eax, dword [ebp + 0xc]
add eax, 0xc
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], str.PRIVATE_KEY_s_n
call sub.msvcrt.dll_printf
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x402b73
mov dword [esp + 8], 0x259
mov dword [esp + 4], str.main
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov eax, dword [ebp + 0xc]
add eax, 0x10
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], str.PUBLIC_KEY_s_n
call sub.msvcrt.dll_printf
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x402bb2
mov dword [esp + 8], 0x25a
mov dword [esp + 4], str.main
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov eax, dword [ebp + 0xc]
add eax, 0x14
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], str.ENABLE_PARTIAL_AUTHENTICATION_s_n
call sub.msvcrt.dll_printf
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x402bf1
mov dword [esp + 8], 0x25b
mov dword [esp + 4], str.main
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov eax, dword [ebp + 0xc]
add eax, 0x18
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], str.NUMBER_FOR_PARTIAL_AUTHENTICATION_s_n
call sub.msvcrt.dll_printf
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x402c30
mov dword [esp + 8], 0x25c
mov dword [esp + 4], str.main
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov eax, dword [ebp + 0xc]
add eax, 0x28
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], str.UTILITY_PATH_s_n
call sub.msvcrt.dll_printf
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x402c6f
mov dword [esp + 8], 0x25d
mov dword [esp + 4], str.main
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov eax, dword [ebp + 0xc]
add eax, 0x1c
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], str.ENABLE_INTERLEAVE_MODE_s_n
call sub.msvcrt.dll_printf
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x402cae
mov dword [esp + 8], 0x25e
mov dword [esp + 4], str.main
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov eax, dword [ebp + 0xc]
add eax, 0x20
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], str.BLOCK_SIZE_FOR_INTERLEAVE_s_n
call sub.msvcrt.dll_printf
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x402ced
mov dword [esp + 8], 0x25f
mov dword [esp + 4], str.main
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov eax, dword [ebp + 0xc]
add eax, 0x24
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], str.DISPLAY_DEBUGGING_INFO_s_n
call sub.msvcrt.dll_printf
mov eax, dword [ebp + 0xc]
add eax, 0x14
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00401440
mov byte [esp + 0x84b], al
mov eax, dword [ebp + 0xc]
add eax, 0x1c
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00401440
mov byte [esp + 0x84a], al
mov eax, dword [ebp + 0xc]
add eax, 0x20
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00401440
mov dword [esp + 0x83c], eax
mov eax, dword [ebp + 0xc]
add eax, 0x18
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00401440
mov dword [esp + 0x844], eax
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x402d93
mov dword [esp + 8], 0x266
mov dword [esp + 4], str.main
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
movzx eax, byte [esp + 0x84b]
mov edx, dword [esp + 0x844]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], str.enPartialAuth_d_segmentNum_d_n
call sub.msvcrt.dll_printf
mov eax, dword [ebp + 0xc]
add eax, 4
mov eax, dword [eax]
mov dword [esp + 4], 0x40c064
mov dword [esp], eax
call sub.msvcrt.dll_fopen
mov dword [esp + 0x840], eax
cmp dword [esp + 0x840], 0
je 0x402e1d
mov eax, dword [esp + 0x840]
mov dword [esp], eax
call sub.msvcrt.dll_fclose
mov eax, dword [ebp + 0xc]
add eax, 4
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_remove
test eax, eax
je 0x402e1d
mov dword [esp + 8], 0x26f
mov dword [esp + 4], str.main
mov dword [esp], str.e_0_31m_ERROR___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov eax, dword [ebp + 0xc]
add eax, 4
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], str._ERROR__remove__s_fail_n
call sub.msvcrt.dll_printf
mov eax, 0xffffffff
jmp 0x403180
cmp byte [esp + 0x84b], 0
jne 0x403061
mov eax, dword [ebp + 0xc]
add eax, 0x10
mov esi, dword [eax]
mov eax, dword [ebp + 0xc]
add eax, 0xc
mov ebx, dword [eax]
mov eax, dword [ebp + 0xc]
add eax, 8
mov ecx, dword [eax]
mov eax, dword [ebp + 0xc]
add eax, 4
mov edx, dword [eax]
mov eax, dword [ebp + 0xc]
add eax, 0x28
mov eax, dword [eax]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 1
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00401544
mov dword [esp + 0x84c], eax
cmp byte [esp + 0x84a], 1
sete dl
cmp dword [esp + 0x84c], 0xffffffff
setne al
and eax, edx
test al, al
je 0x402f78
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
lea eax, [esp + 0x3c]
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov eax, dword [ebp + 0xc]
add eax, 8
mov eax, dword [eax]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s.sig
lea eax, [esp + 0x3c]
mov dword [esp], eax
call sub.msvcrt.dll_sprintf
movzx eax, byte [0x40f020]
cmp al, 1
jne 0x402f19
mov dword [esp + 8], 0x27b
mov dword [esp + 4], str.main
mov dword [esp], str.e_0_34m_DEBUG___s:_d:_e_0m
call sub.msvcrt.dll_printf
lea eax, [esp + 0x3c]
mov dword [esp + 4], eax
mov dword [esp], str.tempBuf_s_n
call sub.msvcrt.dll_printf
mov eax, dword [ebp + 0xc]
add eax, 0x10
mov ebx, dword [eax]
mov eax, dword [ebp + 0xc]
add eax, 0xc
mov ecx, dword [eax]
mov eax, dword [ebp + 0xc]
add eax, 8
mov edx, dword [eax]
mov eax, dword [ebp + 0xc]
add eax, 0x28
mov eax, dword [eax]
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], 1
mov dword [esp + 8], edx
lea edx, [esp + 0x3c]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00401544
mov dword [esp + 0x84c], eax
cmp dword [esp + 0x84c], 0xffffffff
jne 0x402fdc
jmp 0x402faa
mov dword [esp + 8], 0x280
mov dword [esp + 4], str.main
mov dword [esp], str.e_0_31m_ERROR___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov dword [esp], str.create_sub_secure_info_for_non_interleave_mode_fail
call sub.msvcrt.dll_puts
mov eax, 0xffffffff
jmp 0x403180
mov dword [esp + 8], 0x285
mov dword [esp + 4], str.main
mov dword [esp], str.e_0_31m_ERROR___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov dword [esp], str.create_sub_secure_info_for_interleave_mode_fail
call sub.msvcrt.dll_puts
mov eax, 0xffffffff
jmp 0x403180
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
lea eax, [esp + 0x43c]
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov eax, dword [ebp + 0xc]
add eax, 4
mov eax, dword [eax]
mov dword [esp + 4], eax
lea eax, [esp + 0x3c]
mov dword [esp], eax
call fcn.00402872
lea eax, [esp + 0x3c]
mov dword [esp], eax
call sub.msvcrt.dll_remove
test eax, eax
je 0x403147
mov dword [esp + 8], 0x292
mov dword [esp + 4], str.main
mov dword [esp], str.e_0_31m_ERROR___s:_d:_e_0m
call sub.msvcrt.dll_printf
lea eax, [esp + 0x3c]
mov dword [esp + 4], eax
mov dword [esp], str._ERROR__remove__s_fail_n
call sub.msvcrt.dll_printf
mov eax, 0xffffffff
jmp 0x403180
mov eax, dword [ebp + 0xc]
add eax, 0x10
mov esi, dword [eax]
mov eax, dword [ebp + 0xc]
add eax, 0xc
mov ebx, dword [eax]
mov eax, dword [ebp + 0xc]
add eax, 0x28
mov ecx, dword [eax]
mov eax, dword [ebp + 0xc]
add eax, 4
mov edx, dword [eax]
mov eax, dword [ebp + 0xc]
add eax, 8
mov eax, dword [eax]
mov edi, dword [esp + 0x83c]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x844]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.004020e3
mov dword [esp + 0x84c], eax
cmp byte [esp + 0x84a], 1
sete dl
cmp dword [esp + 0x84c], 0xffffffff
setne al
and eax, edx
test al, al
je 0x403147
mov eax, dword [ebp + 0xc]
add eax, 0x10
mov esi, dword [eax]
mov eax, dword [ebp + 0xc]
add eax, 0xc
mov ebx, dword [eax]
mov eax, dword [ebp + 0xc]
add eax, 0x28
mov ecx, dword [eax]
mov eax, dword [ebp + 0xc]
add eax, 4
mov edx, dword [eax]
mov eax, dword [ebp + 0xc]
add eax, 8
mov eax, dword [eax]
mov edi, dword [esp + 0x83c]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x844]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.004020e3
mov dword [esp + 0x84c], eax
cmp dword [esp + 0x84c], 0xffffffff
jne 0x403179
mov dword [esp + 8], 0x2a1
mov dword [esp + 4], str.main
mov dword [esp], str.e_0_31m_ERROR___s:_d:_e_0m
call sub.msvcrt.dll_printf
mov dword [esp], str.Create_secure_info_fail
call sub.msvcrt.dll_puts
mov eax, dword [esp + 0x84c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret