Function at 0x401490
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov dword [ebp - 0x30], eax
mov eax, 1
push esi
push edi
mov dword [ebp - 0x2c], eax
cmp dword [ebp + 8], eax
jle 0x4016b6
lea ebx, [ebx]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + eax*4]
cmp byte [eax], 0x2d
mov dword [ebp - 0x28], eax
jne 0x401688
cmp byte [eax + 1], 0
lea esi, [eax + 1]
je 0x401688
mov edi, eax
push 0x3d
push edi
call dword [sym.imp.MSVCR100.dll_strchr]
mov edx, edi
add esp, 8
cmp byte [edx], 0x2d
mov ebx, eax
jne 0x4014f8
mov edi, esi
cmp byte [edi], 0x2d
jne 0x4014fe
inc edi
test ebx, ebx
je 0x401528
mov esi, ebx
sub esi, edi
cmp esi, 0x1f
jle 0x401510
mov esi, 0x1f
push esi
lea eax, [ebp - 0x24]
push edi
push eax
call dword [sym.imp.MSVCR100.dll_strncpy]
add esp, 0xc
mov byte [ebp + esi - 0x24], 0
lea edi, [ebp - 0x24]
inc ebx
mov ecx, str.page
mov eax, edi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x401550
test dl, dl
je 0x40154c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x401550
add eax, 2
add ecx, 2
test dl, dl
jne 0x401530
xor eax, eax
jmp 0x401555
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x401641
mov ecx, str.pages
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x401584
test dl, dl
je 0x401580
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x401584
add eax, 2
add ecx, 2
test dl, dl
jne 0x401564
xor eax, eax
jmp 0x401589
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x401641
mov ecx, str.detail
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4015b8
test dl, dl
je 0x4015b4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4015b8
add eax, 2
add ecx, 2
test dl, dl
jne 0x401598
xor eax, eax
jmp 0x4015bd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4015f6
test ebx, ebx
jne 0x4015ca
mov ebx, str.char
cmp dword [0x404380], 0
je 0x4015eb
push str.warning:_duplicate_option___detail._n
call dword [sym.imp.MSVCR100.dll___iob_func]
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
add esp, 8
mov dword [0x404380], ebx
jmp 0x4016a6
mov ecx, str.escape
mov eax, edi
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x401620
test dl, dl
je 0x40161c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x401620
add eax, 2
add ecx, 2
test dl, dl
jne 0x401600
xor eax, eax
jmp 0x401625
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4016c4
test ebx, ebx
jne 0x4016c4
mov dword [0x404388], 1
jmp 0x4016a6
test ebx, ebx
jne 0x40165f
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp + 8]
jge 0x4016d2
mov ecx, dword [ebp - 0x30]
mov ebx, dword [ecx + eax*4]
inc eax
mov dword [ebp - 0x2c], eax
test ebx, ebx
je 0x4016d2
cmp dword [0x404384], 0
je 0x401680
push str.warning:_duplicate_option___page..._n
call dword [sym.imp.MSVCR100.dll___iob_func]
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
add esp, 8
mov dword [0x404384], ebx
jmp 0x4016a6
cmp dword [0x404378], 0
jne 0x401698
mov dword [0x404378], eax
jmp 0x4016a6
cmp dword [0x40437c], 0
jne 0x4016bf
mov dword [0x40437c], eax
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x2c], eax
cmp eax, dword [ebp + 8]
jl 0x4014c0
cmp dword [0x404378], 0
jne 0x4016e0
call fcn.00401460
mov edx, dword [ebp - 0x28]
push edx
push str.unrecognized_option__s.
call section..text
mov eax, dword [ebp - 0x28]
push eax
push str.option__s_needs_an_argument.
call section..text
cmp dword [0x40437c], 0
je 0x40171d
call dword [sym.imp.MSVCR100.dll___iob_func]
mov ecx, dword [0x40437c]
add eax, 0x20
push eax
push 0x403464
push ecx
call dword [sym.imp.MSVCR100.dll_freopen]
add esp, 0xc
test eax, eax
jne 0x40171d
mov edx, dword [0x40437c]
push edx
push str.cannot_open_output_file__s.
call section..text
cmp dword [0x404384], 0
jne 0x401730
mov dword [0x404384], 0x403484
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.libdjvulibre.dll_ddjvu_context_create]
add esp, 4
mov dword [0x404370], eax
test eax, eax
jne 0x401752
push str.Cannot_create_djvu_context.
call section..text
mov edx, dword [0x404378]
push 1
push edx
push eax
call dword [sym.imp.libdjvulibre.dll_ddjvu_document_create_by_filename]
add esp, 0xc
mov dword [0x404374], eax
test eax, eax
jne 0x40177e
mov eax, dword [0x404378]
push eax
push str.Cannot_open_djvu_document__s.
call section..text
push eax
call dword [sym.imp.libdjvulibre.dll_ddjvu_document_job]
push eax
call dword [sym.imp.libdjvulibre.dll_ddjvu_job_status]
add esp, 8
cmp eax, 2
jge 0x401801
mov edi, dword [sym.imp.libdjvulibre.dll_ddjvu_message_peek]
mov ebx, dword [sym.imp.libdjvulibre.dll_ddjvu_message_pop]
mov eax, dword [0x404370]
test eax, eax
je 0x4017e5
push eax
call dword [sym.imp.libdjvulibre.dll_ddjvu_message_wait]
mov ecx, dword [0x404370]
push ecx
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x4017e5
cmp dword [esi], 0
je 0x40185d
mov edx, dword [0x404370]
push edx
call ebx
mov eax, dword [0x404370]
push eax
call edi
mov esi, eax
add esp, 8
test esi, esi
jne 0x4017c2
mov ecx, dword [0x404374]
push ecx
call dword [sym.imp.libdjvulibre.dll_ddjvu_document_job]
push eax
call dword [sym.imp.libdjvulibre.dll_ddjvu_job_status]
add esp, 8
cmp eax, 2
jl 0x4017a0
mov edx, dword [0x404374]
push edx
call dword [sym.imp.libdjvulibre.dll_ddjvu_document_get_pagenum]
push eax
call fcn.004012e0
mov eax, dword [0x404374]
add esp, 8
pop edi
pop esi
pop ebx
test eax, eax
je 0x401834
push eax
call dword [sym.imp.libdjvulibre.dll_ddjvu_document_job]
push eax
call dword [sym.imp.libdjvulibre.dll_ddjvu_job_release]
add esp, 8
mov eax, dword [0x404370]
test eax, eax
je 0x401847
push eax
call dword [sym.imp.libdjvulibre.dll_ddjvu_context_release]
add esp, 4
call dword [sym.imp.libdjvulibre.dll_minilisp_finish]
mov ecx, dword [ebp - 4]
xor ecx, ebp
xor eax, eax
call fcn.004018b4
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x14]
mov ebx, dword [sym.imp.MSVCR100.dll___iob_func]
push edx
push str.djvutxt:__s_n
call ebx
mov edi, dword [sym.imp.MSVCR100.dll_fprintf]
add eax, 0x40
push eax
call edi
mov eax, dword [esi + 0x1c]
add esp, 0xc
test eax, eax
je 0x401899
mov ecx, dword [esi + 0x20]
push ecx
push eax
push str.djvutxt:__s:_d_n
call ebx
add eax, 0x40
push eax
call edi
add esp, 0x10
push 0xa
call dword [sym.imp.MSVCR100.dll_exit]
int3