Function at 0x404548
Capabilities:
Accept command line arguments

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x70]
mov dword [esp + 0x28], eax
add eax, 0x4000c
mov dword [esp], eax
call fcn.0044a37c
mov eax, dword [esp + 0x28]
add eax, 0x40028
mov dword [esp], eax
call fcn.0044a37c
mov edx, dword [esp + 0x28]
mov dword [edx + 0x40044], 0x45622c
lea esi, [edx + 0x40044]
mov dword [edx + 0x4004c], 0xffffffff
mov byte [edx + 0x40048], 0
mov ebx, edx
add ebx, 0x40050
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x404647
cmp dword [0x7184d0], 0
je 0x4045d3
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.004019f2
mov ebx, eax
mov dword [esp], 0x40000
call fcn.004019f2
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x44e828
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040ee32
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], esi
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040a376
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov dword [ebx], eax
lea ebx, [esi + 0x18]
mov dword [esp], 0x10000
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x4046f1
cmp dword [0x7184d0], 0
je 0x40467d
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.004019f2
mov ebx, eax
mov dword [esp], 0x40000
call fcn.004019f2
mov esi, eax
mov dword [esp + 8], 0x10000
mov dword [esp + 4], 0x44e828
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040ee32
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], esi
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040a376
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov dword [ebx], eax
lea ebx, [esi + 0x10]
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x40479b
cmp dword [0x7184d0], 0
je 0x404727
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.004019f2
mov ebx, eax
mov dword [esp], 0x40000
call fcn.004019f2
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x44e828
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040ee32
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], esi
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040a376
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov dword [ebx], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x14], eax
mov dword [esp + 4], 0x44eaac
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov eax, dword [esi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x10]
mov dword [esp], eax
call fcn.0040ee32
call sub.KERNEL32.dll_GetCommandLineW
lea edx, [esp + 0x74]
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.SHELL32.DLL_CommandLineToArgvW
sub esp, 8
mov dword [esp + 0x20], eax
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov ecx, dword [esp + 0x20]
mov dword [ecx], eax
mov dword [esp + 4], 0x20000
mov eax, dword [ecx]
mov dword [esp], eax
call fcn.0040cd7a
mov eax, dword [esp + 0x74]
lea eax, [eax*4 + 4]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [esp + 0x24], eax
mov ebp, 0
cmp ebp, dword [esp + 0x74]
jge 0x404887
lea ebx, [ebp*4]
mov eax, dword [esp + 0x24]
lea esi, [ebx + eax]
add ebx, dword [esp + 0x20]
mov eax, dword [ebx]
mov dword [esp], eax
call sub.msvcrt.dll_wcslen
lea eax, [eax*4 + 1]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [esi], eax
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.0040ef06
mov edi, dword [esi]
cld
mov al, 0
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
mov dword [esp + 4], ecx
mov eax, dword [esi]
mov dword [esp], eax
call sub.msvcrt.dll_realloc
mov dword [esi], eax
inc ebp
cmp ebp, dword [esp + 0x74]
jl 0x404827
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x24]
mov dword [edx + eax*4], 0
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x28]
mov dword [eax + 0x40084], 0
mov dword [eax + 0x40088], 0
mov byte [eax + 0xc], 0
mov dword [esp + 4], 0x44eaac
mov eax, dword [eax + 0x40020]
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x40018]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x4001c]
mov dword [esp], eax
call fcn.0040ee32
mov dword [esp + 4], 0x44eaac
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x4003c]
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x40034]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x40038]
mov dword [esp], eax
call fcn.0040ee32
mov dword [esp + 4], 0x44eaac
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x40058]
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x40050]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x40054]
mov dword [esp], eax
call fcn.0040ee32
mov dword [esp], 0x7d1
call fcn.004019f2
mov edx, dword [esp + 0x28]
mov dword [edx + 0x40074], eax
mov byte [eax], 0
mov dword [edx + 0x40064], 0
mov dword [edx + 0x40060], 0
mov dword [edx + 0x4007c], 0
mov dword [edx + 0x40080], 0
mov dword [edx + 0x4006c], 0
mov dword [edx + 0x40070], 0
mov dword [edx + 0x40078], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x24]
mov ebx, dword [ecx]
mov dword [edx + 4], ebx
mov byte [edx], 0x78
mov dword [edx + 0x40068], 1
add ecx, 4
mov dword [esp + 0x24], ecx
cmp dword [ecx], 0
je 0x404f2e
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x40088], 0
jne 0x404f2e
mov edx, dword [esp + 0x24]
mov ebp, dword [edx]
cmp byte [ebp], 0x2d
je 0x404a47
mov esi, ebp
mov edi, 0x44eae1
mov eax, 3
cld
mov ecx, eax
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
je 0x404a47
mov esi, ebp
mov edi, str._help
mov ecx, 6
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x404f2e
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
mov edi, 0x44eaea
mov ecx, 3
cld
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x404a7a
mov edx, dword [esp + 0x28]
mov byte [edx], 0x6c
mov dword [edx + 0x40078], 1
jmp 0x404f0f
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx]
mov edi, 0x44eaed
mov ecx, 3
cld
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x404aad
mov eax, dword [esp + 0x28]
mov byte [eax], 0x76
mov dword [eax + 0x40078], 1
jmp 0x404f0f
mov edx, dword [esp + 0x24]
mov esi, dword [edx]
mov edi, 0x44eaf0
mov ecx, 3
cld
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x404ae0
mov ecx, dword [esp + 0x28]
mov byte [ecx], 0x65
mov dword [ecx + 0x40078], 1
jmp 0x404f0f
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
mov edi, 0x44eaf3
mov ecx, 3
cld
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x404b13
mov edx, dword [esp + 0x28]
mov byte [edx], 0x78
mov dword [edx + 0x40078], 1
jmp 0x404f0f
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx]
mov edi, 0x44eaf6
mov ecx, 3
cld
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x404b46
mov eax, dword [esp + 0x28]
mov byte [eax], 0x74
mov dword [eax + 0x40078], 1
jmp 0x404f0f
mov edx, dword [esp + 0x24]
mov esi, dword [edx]
mov edi, 0x44eaf9
mov ecx, 3
cld
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x404b76
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x4007c], 1
jmp 0x404f0f
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
mov edi, 0x44eafc
mov ecx, 3
cld
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x404ba6
mov edx, dword [esp + 0x28]
mov dword [edx + 0x40080], 1
jmp 0x404f0f
mov ecx, dword [esp + 0x24]
mov ebp, dword [ecx]
mov esi, ebp
mov edi, 0x44eaff
mov ecx, 2
cld
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x404c04
cmp ebp, 0xfffffffe
je 0x404c04
lea eax, [ebp + 2]
mov dword [esp + 4], eax
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x40020]
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x40018]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x4001c]
mov dword [esp], eax
call fcn.0040ee32
jmp 0x404f0f
mov eax, dword [esp + 0x24]
mov ebp, dword [eax]
mov esi, ebp
mov edi, 0x44eb02
mov ecx, 2
cld
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x404c62
cmp ebp, 0xfffffffe
je 0x404c62
lea eax, [ebp + 2]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x4003c]
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x40034]
mov dword [esp + 4], eax
mov eax, dword [edx + 0x40038]
mov dword [esp], eax
call fcn.0040ee32
jmp 0x404f0f
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx]
mov edi, 0x44eb05
mov ecx, 2
cld
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x404cb0
mov eax, dword [esp + 0x24]
cmp dword [eax], 0xfffffffe
je 0x404cb0
mov dword [esp + 8], 0x7d0
mov eax, dword [eax]
add eax, 2
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x40074]
mov dword [esp], eax
call fcn.0040e146
jmp 0x404f0f
mov eax, dword [esp + 0x24]
mov ebp, dword [eax]
mov esi, ebp
mov edi, 0x44eb08
mov ecx, 3
cld
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x404d2f
cmp ebp, 0xfffffffd
je 0x404d2f
lea eax, [ebp + 3]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x28]
add esi, 0xc
mov dword [esp], esi
call sub.msvcrt.dll_strcpy
mov ecx, dword [esp + 0x28]
cmp byte [ecx + 0xc], 0
je 0x404f0f
mov dword [esp + 4], 0
mov dword [esp], esi
call sub.msvcrt.dll_strchr
mov esi, eax
movsx eax, byte [eax - 1]
mov dword [esp + 4], eax
mov dword [esp], 0x44eaa8
call sub.msvcrt.dll_strchr
test eax, eax
je 0x404f0f
mov byte [esi - 1], 0
jmp 0x404f0f
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
mov edi, str._ld_
mov ecx, 5
cld
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x404d5f
mov edx, dword [esp + 0x28]
mov dword [edx + 0x4006c], 1
jmp 0x404f0f
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx]
mov edi, 0x44eb11
mov ecx, 3
cld
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x404dc6
mov eax, dword [esp + 0x24]
cmp dword [eax], 0xfffffffd
je 0x404dc6
mov dword [esp + 8], 0x6d
lea eax, [esp + 0x2c]
mov dword [esp + 4], eax
mov edx, dword [esp + 0x24]
mov eax, dword [edx]
add eax, 3
mov dword [esp], eax
call fcn.0040e81c
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x40070], eax
cmp dword [esp + 0x2c], 0
sete al
movzx eax, al
mov dword [ecx + 0x40068], eax
jmp 0x404f0f
mov eax, dword [esp + 0x24]
mov ebp, dword [eax]
mov esi, ebp
mov edi, str._cfg
mov ecx, 4
cld
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x404e1a
cmp ebp, 0xfffffffc
je 0x404e1a
add ebp, 4
mov dword [esp + 0x1c], ebp
mov esi, ebp
mov edi, 0x44eb1a
mov ecx, 2
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x404f0f
mov dword [esp + 0x1c], 0x44eaac
jmp 0x404f0f
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx]
mov edi, 0x44eb1c
mov ecx, 3
cld
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x404e4a
mov eax, dword [esp + 0x28]
mov dword [eax + 0x40078], 1
jmp 0x404f0f
mov edx, dword [esp + 0x24]
mov esi, dword [edx]
mov edi, 0x44eb1f
mov ecx, 4
cld
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x404e7a
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x40078], 0
jmp 0x404f0f
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
mov edi, 0x44eb23
mov ecx, 4
cld
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x404ea7
mov edx, dword [esp + 0x28]
mov dword [edx + 0x40078], 1
jmp 0x404f0f
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx]
mov edi, 0x44eb27
mov ecx, 4
cld
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x404ed4
mov eax, dword [esp + 0x28]
mov dword [eax + 0x40078], 2
jmp 0x404f0f
mov edx, dword [esp + 0x24]
mov esi, dword [edx]
mov edi, 0x44eb2b
mov ecx, 3
cld
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x404f01
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x40088], 1
jmp 0x404f0f
mov eax, dword [esp + 0x28]
mov dword [eax + 0x40068], 0
mov edx, dword [esp + 0x28]
cmp dword [edx + 0x40068], 0
je 0x404f2e
add dword [esp + 0x24], 4
mov ecx, dword [esp + 0x24]
cmp dword [ecx], 0
jne 0x4049f3
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov dword [eax + 8], edx
cmp dword [eax + 0x40068], 0
je 0x404f5c
mov ecx, dword [esp + 0x1c]
mov dword [esp + 4], ecx
mov dword [esp], ebx
call fcn.00402dda
jmp 0x4052af
lea eax, [ebx + 1]
jmp 0x404fbb
mov eax, dword [esp + 0x28]
mov edi, dword [eax + 4]
cld
mov ecx, 0xffffffff
mov al, 0
repne scasb al, byte es:[edi]
not ecx
add ecx, 0x3e7
mov dword [esp], ecx
call fcn.004019f2
mov edi, eax
mov edx, dword [esp + 0x28]
mov esi, dword [edx + 4]
mov dword [esp + 4], 0
mov dword [esp], esi
call sub.msvcrt.dll_strchr
lea ebx, [eax - 1]
cmp ebx, esi
jb 0x404fb9
movsx eax, byte [ebx]
mov dword [esp + 4], eax
mov dword [esp], 0x44eaa8
call sub.msvcrt.dll_strchr
test eax, eax
jne 0x404f57
dec ebx
cmp ebx, esi
jae 0x404f9d
mov eax, esi
mov dword [esp + 8], eax
mov dword [esp + 4], str.FreeArc_0.67_SFX__http:__freearc.org__2014_03_16_nUsage:__s__options___filenames...__nAvailable_options:_n___x____________extract_files_n___e____________extract_files_without_pathnames_n___t____________test_archive_integrity_n___apPath_____set_base_directory_inside_archive_n___dPath______set_destination_path_n___wPath______set_temporary_files_directory_n___pPwd_______set_decryption_password_n___ldMem______limit_memory_used_for_decompression___ld__means_no_limit__n___y____________answer_Yes_on_all_overwrite_queries_n___n____________answer_No__on_all_overwrite_queries_n___s_1_2________silent_mode_n___cfgPath____config_file_name__default:_arc.ini___cfg__means_no_config__n________________no_more_options_n
mov dword [esp], edi
call sub.msvcrt.dll_sprintf
lea ebp, [esp + 0x30]
mov dword [esp + 0x30], 0x45622c
mov dword [esp + 0x38], 0xffffffff
mov byte [esp + 0x34], 0
lea ebx, [esp + 0x3c]
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x405091
cmp dword [0x7184d0], 0
je 0x40501d
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.004019f2
mov ebx, eax
mov dword [esp], 0x40000
call fcn.004019f2
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x44e828
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040ee32
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], esi
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040a376
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov dword [ebx], eax
lea ebx, [ebp + 0x18]
mov dword [esp], 0x10000
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x40513b
cmp dword [0x7184d0], 0
je 0x4050c7
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.004019f2
mov ebx, eax
mov dword [esp], 0x40000
call fcn.004019f2
mov esi, eax
mov dword [esp + 8], 0x10000
mov dword [esp + 4], 0x44e828
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040ee32
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], esi
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040a376
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov dword [ebx], eax
lea ebx, [ebp + 0x10]
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x4051e5
cmp dword [0x7184d0], 0
je 0x405171
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.004019f2
mov ebx, eax
mov dword [esp], 0x40000
call fcn.004019f2
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x44e828
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040ee32
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], esi
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040a376
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov dword [ebx], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp + 0x14], eax
mov dword [esp + 4], 0x44eaac
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
call fcn.0040ee32
mov dword [esp + 4], edi
mov eax, dword [ebp + 0x14]
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
call fcn.0040ee32
lea ebx, [esp + 0x30]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Command_line_help
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
mov dword [esp + 0x30], 0x45622c
mov dword [esp], ebx
call fcn.0044ab24
cmp byte [esp + 0x34], 0
je 0x405289
mov dword [esp], ebx
mov eax, dword [esp + 0x30]
call dword [eax + 0x14]
mov dword [esp], ebx
call fcn.0040f9f6
mov byte [esp + 0x34], 0
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 0x10]
je 0x405299
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call sub.msvcrt.dll_free
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret