Function at 0x431d60
Capabilities:
Terminate process

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x68]
mov edi, dword [eax]
mov eax, dword [esp + 0x6c]
and ecx, 1
mov dword [esp + 0x24], ecx
mov esi, ecx
mov dword [eax], 0
mov eax, dword [esp + 0x60]
mov byte [esp + 0x3a], cl
mov dword [esp + 0x2c], eax
mov eax, ecx
xor eax, 1
mov byte [esp + 0x3b], al
mov eax, dword [edi]
mov dword [esp + 0x34], eax
test eax, eax
je 0x43239f
movzx eax, byte [eax]
cmp al, 0x2d
sete dl
sub eax, 0x2b
test al, 0xfd
jne 0x4323db
movzx eax, dl
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
cmp byte [eax + 1], 0
jne 0x431e10
mov dword [edi], 0x4f33ac
add edi, 4
mov eax, dword [esp + 0x6c]
mov eax, dword [eax]
test eax, eax
jne 0x43240e
mov eax, dword [esp + 0x64]
mov dword [eax], edi
test esi, esi
je 0x432206
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x2c]
xor esi, esi
call fcn.004316e0
jmp 0x432206
mov ecx, dword [esp + 0x34]
lea eax, [ecx + 1]
mov dword [esp + 0x3c], eax
mov edx, eax
mov dword [edi], eax
movzx eax, byte [ecx + 1]
test al, al
je 0x432397
mov dword [esp + 0x30], 0
mov ebp, ecx
lea esi, [esi]
cmp al, 0x2d
je 0x4320d9
cmp byte [0x522d64], 0
jne 0x431e51
cmp al, 0x62
je 0x432050
cmp al, 0x63
je 0x431f10
cmp al, 0x6f
je 0x432180
call sub.cygwin1.dll___locale_ctype_ptr
mov edx, dword [edi]
mov ecx, eax
movzx ebp, byte [edx]
mov eax, ebp
test byte [ebp + ecx + 1], 8
jne 0x431ee5
test esi, esi
jne 0x431fb0
movsx eax, al
mov dword [esp], eax
call fcn.0044b570
mov esi, eax
test eax, eax
je 0x4321d8
cmp eax, 0x9c
jne 0x431f50
cmp byte [esp + 0x3a], 0
je 0x431f50
mov eax, dword [esp + 0x28]
mov dword [0x522320], eax
mov ebp, dword [edi]
lea edx, [ebp + 1]
mov dword [edi], edx
movzx eax, byte [ebp + 1]
test al, al
je 0x431ef8
xor esi, esi
jmp 0x431e38
call sub.cygwin1.dll___locale_ctype_ptr
mov edx, dword [edi]
movzx ecx, byte [edx]
test byte [ecx + eax + 1], 8
je 0x432275
lea eax, [edx + 1]
mov dword [edi], eax
cmp byte [edx + 1], 0
jne 0x431ed0
jmp 0x431efa
xor esi, esi
mov ecx, dword [esp + 0x30]
add edi, 4
test ecx, ecx
je 0x431d9d
jmp 0x431dd8
test esi, esi
jne 0x432080
mov eax, dword [edi]
mov ecx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x24]
mov dword [ecx], eax
and byte [ebx + 0x5f], 1
test ebp, ebp
je 0x431eb2
mov dword [esp], 0x4f3692
call sym.zsh.exe_ztrdup
mov dword [sym.zsh.exe_scriptfilename], eax
mov dword [sym.zsh.exe_scriptname], eax
jmp 0x431eb2
cmp esi, 0x32
je 0x431fd0
cmp esi, 0xb0
je 0x431fd0
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], ebx
mov dword [esp], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
call sym.zsh.exe_dosetopt
cmp byte [esp + 0x3b], 0
je 0x431ff8
test eax, eax
je 0x431ff8
mov eax, dword [edi]
movsx eax, byte [eax]
mov dword [esp + 4], 0x4f36ea
mov dword [esp + 8], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call sym.zsh.exe_zwarnnam
jmp 0x431eb2
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x74]
call fcn.004316e0
mov eax, dword [edi]
movzx eax, byte [eax]
jmp 0x431e7e
mov eax, dword [esp + 0x24]
test eax, eax
je 0x432098
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov dword [esp], esi
call sym.zsh.exe_dosetopt
mov ebp, dword [esp + 0x70]
test ebp, ebp
je 0x431eb2
mov edx, esi
mov eax, dword [esp + 0x70]
neg edx
cmovs edx, esi
add edx, ebx
jmp 0x432021
cmp edx, dword [eax + 8]
jb 0x4320d0
mov eax, dword [eax]
test eax, eax
jne 0x432018
mov dword [esp + 8], edx
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call sym.zsh.exe_insertlinknode
jmp 0x431eb2
test esi, esi
jne 0x4320c0
mov ebp, dword [edi]
lea edx, [ebp + 1]
mov dword [edi], edx
movzx eax, byte [ebp + 1]
test al, al
je 0x4323fb
mov dword [esp + 0x30], 1
xor esi, esi
jmp 0x431e38
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x2c]
call fcn.004316e0
jmp 0x431f18
mov eax, dword [edi]
mov dword [esp + 4], 0x4f36c2
mov dword [esp + 8], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call sym.zsh.exe_zwarnnam
jmp 0x431eb2
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x2c]
call fcn.004316e0
jmp 0x432054
mov dword [esp + 8], edx
jmp 0x43202f
cmp byte [ebp + 2], 0
je 0x431dd5
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4322bf
cmp edx, dword [esp + 0x3c]
jne 0x43227d
lea edx, [ebp + 2]
mov dword [edi], edx
mov dword [esp], edx
mov dword [esp + 4], str.version
mov dword [esp + 0x34], edx
call sub.cygwin1.dll_strcmp
mov edx, dword [esp + 0x34]
test eax, eax
je 0x432429
mov dword [esp], edx
mov dword [esp + 4], str.help
mov dword [esp + 0x34], edx
call sub.cygwin1.dll_strcmp
mov edx, dword [esp + 0x34]
test eax, eax
je 0x432461
mov dword [esp], edx
mov dword [esp + 4], str.emulate
mov dword [esp + 0x34], edx
call sub.cygwin1.dll_strcmp
mov edx, dword [esp + 0x34]
test eax, eax
jne 0x432373
mov ecx, dword [edi + 4]
lea eax, [edi + 4]
mov dword [esp + 0x2c], ecx
test ecx, ecx
je 0x4325d4
test esi, esi
je 0x4325ec
mov edi, eax
jmp 0x431efa
lea eax, [ebp + 2]
mov dword [edi], eax
cmp byte [ebp + 2], 0
jne 0x43219b
lea eax, [edi + 4]
mov edi, dword [edi + 4]
test edi, edi
je 0x432552
mov edi, eax
test esi, esi
jne 0x432361
mov eax, dword [edi]
mov dword [esp], eax
call sym.zsh.exe_optlookup
mov ebp, eax
test eax, eax
je 0x43250c
cmp eax, 0x9c
jne 0x432210
cmp byte [esp + 0x3a], 0
je 0x432210
mov eax, dword [esp + 0x28]
xor esi, esi
mov dword [0x522320], eax
jmp 0x431efa
mov eax, dword [edi]
mov edx, dword [esp + 0x24]
movsx eax, byte [eax]
test edx, edx
jne 0x4322a0
mov dword [esp + 8], eax
mov eax, dword [esp + 0x60]
mov esi, 1
mov dword [esp + 4], 0x4f36da
mov dword [esp], eax
call sym.zsh.exe_zwarnnam
add esp, 0x4c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
cmp ebp, 0x32
je 0x4322ea
cmp ebp, 0xb0
je 0x4322ea
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], ebx
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
call sym.zsh.exe_dosetopt
test eax, eax
je 0x432312
cmp byte [esp + 0x3b], 0
je 0x432312
mov eax, dword [edi]
mov dword [esp + 4], 0x4f36c2
xor esi, esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call sym.zsh.exe_zwarnnam
jmp 0x431efa
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x4322bf
mov eax, dword [esp + 0x34]
mov dword [esp], str.bad_option_string:__s
mov esi, 1
mov dword [esp + 4], eax
call sym.zsh.exe_zerr
add esp, 0x4c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], eax
mov esi, 1
mov dword [esp], 0x4f36da
call sym.zsh.exe_zerr
add esp, 0x4c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x34]
mov dword [esp + 4], str.bad_option_string:__s
mov esi, 1
mov dword [esp + 8], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call sym.zsh.exe_zwarnnam
add esp, 0x4c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x24]
test eax, eax
je 0x432254
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov dword [esp], ebp
call sym.zsh.exe_dosetopt
mov eax, dword [esp + 0x70]
xor esi, esi
test eax, eax
je 0x431efa
mov edx, ebp
mov eax, dword [esp + 0x70]
neg edx
cmovs edx, ebp
add edx, ebx
jmp 0x432339
cmp edx, dword [eax + 8]
jb 0x432420
mov eax, dword [eax]
test eax, eax
jne 0x432330
mov dword [esp + 8], edx
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 4]
xor esi, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call sym.zsh.exe_insertlinknode
jmp 0x431efa
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x2c]
call fcn.004316e0
jmp 0x4321a3
movzx eax, byte [ebp + 2]
test al, al
je 0x43219b
nop
cmp al, 0x2d
jne 0x432387
mov byte [edx], 0x5f
movzx eax, byte [edx + 1]
add edx, 1
test al, al
jne 0x432380
jmp 0x43219b
add edi, 4
jmp 0x431d9d
mov eax, dword [esp + 0x6c]
mov eax, dword [eax]
test eax, eax
je 0x431de6
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x432538
mov dword [esp + 8], eax
mov eax, dword [esp + 0x60]
mov esi, 1
mov dword [esp + 4], str.string_expected_after___s
mov dword [esp], eax
call sym.zsh.exe_zwarnnam
jmp 0x432206
mov eax, dword [esp + 0x6c]
mov eax, dword [eax]
test eax, eax
je 0x431de6
mov eax, dword [esp + 0x6c]
mov ebx, dword [esp + 0x34]
add edi, 4
mov dword [eax], ebx
jmp 0x431de6
mov eax, dword [esp + 0x6c]
add edi, 4
xor esi, esi
mov eax, dword [eax]
test eax, eax
je 0x432580
mov ebx, dword [edi]
mov dword [esp + 0x34], ebx
test ebx, ebx
jne 0x4323e9
jmp 0x4323ad
mov dword [esp + 8], edx
jmp 0x432347
mov dword [esp + 0x10], 0x4f33ce
mov dword [esp + 0xc], 0x4f33d5
mov dword [esp + 8], 0x4f33d8
mov dword [esp + 4], 0x4f33dd
mov dword [esp], str.zsh__s___s__s__s__n
call sub.cygwin1.dll_printf
mov dword [esp], 0
call sub.cygwin1.dll_exit
mov eax, dword [sym.zsh.exe_argzero]
mov dword [esp], str.Usage:__s___options_____argument__...__n
mov dword [esp + 4], eax
call sub.cygwin1.dll_printf
mov dword [esp], str._nSpecial_options:
call sub.cygwin1.dll_puts
mov dword [esp], str.____help_____show_this_message__then_exit
call sub.cygwin1.dll_puts
mov dword [esp], str.____version__show_zsh_version_number__then_exit
call sub.cygwin1.dll_puts
cmp byte [0x522d64], 0
je 0x4325a5
mov dword [esp], str.___c_________take_first_argument_as_a_command_to_execute
call sub.cygwin1.dll_puts
mov dword [esp], str.___o_OPTION__set_an_option_by_name__see_below_
call sub.cygwin1.dll_puts
mov dword [esp], str._nNormal_options_are_named.__An_option_may_be_turned_on_by
call sub.cygwin1.dll_puts
mov dword [esp], str.__o_OPTION_____OPTION___o_no_OPTION_or___no_OPTION.__An
call sub.cygwin1.dll_puts
mov dword [esp], str.option_may_be_turned_off_by___o_no_OPTION_____no_OPTION_
call sub.cygwin1.dll_puts
mov dword [esp], str._o_OPTION_or___OPTION.__Options_are_listed_below_only_in
call sub.cygwin1.dll_puts
mov dword [esp], str.___OPTION_or____no_OPTION_form.
call sub.cygwin1.dll_puts
call fcn.0044c000
mov dword [esp], 0
call sub.cygwin1.dll_exit
mov edx, dword [esp + 0x24]
mov eax, dword [edi]
test edx, edx
jne 0x43258b
mov dword [esp + 8], eax
mov eax, dword [esp + 0x60]
mov esi, 1
mov dword [esp + 4], 0x4f36af
mov dword [esp], eax
call sym.zsh.exe_zwarnnam
jmp 0x432206
mov dword [esp + 4], eax
mov esi, 1
mov dword [esp], str.string_expected_after___s
call sym.zsh.exe_zerr
jmp 0x432206
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x4325b6
mov eax, dword [esp + 0x60]
mov dword [esp + 8], 0
mov esi, 1
mov dword [esp + 4], 0x4f3696
mov dword [esp], eax
call sym.zsh.exe_zwarnnam
jmp 0x432206
mov eax, dword [esp + 0x64]
mov dword [eax], edi
jmp 0x432206
mov dword [esp + 4], eax
mov esi, 1
mov dword [esp], 0x4f36af
call sym.zsh.exe_zerr
jmp 0x432206
mov dword [esp], str.___b_________end_option_processing__like___
call sub.cygwin1.dll_puts
jmp 0x4324a7
mov dword [esp + 4], 0
mov esi, 1
mov dword [esp], 0x4f3696
call sym.zsh.exe_zerr
jmp 0x432206
mov dword [esp], str.__emulate:_argument_required
call sym.zsh.exe_zerr
mov dword [esp], 1
call sub.cygwin1.dll_exit
mov dword [esp], str.__emulate:_must_precede_other_options
call sym.zsh.exe_zerr
mov dword [esp], 1
call sub.cygwin1.dll_exit
lea esi, [esi]
lea esi, [esi]
nop