Function at 0x43007a
Capabilities:
Terminate process

Disassembly:
sub esp, 0x24
push ebx
push ebp
mov ebp, dword [esp + 0x34]
push esi
push edi
mov eax, dword [ebp]
mov dword [esp + 0x18], eax
xor eax, eax
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x38], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
je 0x430a3c
dec dword [esp + 0x38]
add ebp, 4
cmp dword [esp + 0x38], eax
push 2
mov dword [esp + 0x34], eax
pop ebx
jle 0x430592
mov eax, dword [ebp]
cmp byte [eax], 0x2d
jne 0x430592
cmp byte [eax + 1], 0
lea esi, [eax + 1]
je 0x430592
push 1
pop edi
movsx eax, byte [esi]
cmp eax, 0x63
jg 0x430263
je 0x43025b
cmp eax, 0x49
jg 0x43017c
je 0x43042b
test eax, eax
je 0x430580
cmp eax, 0xd
je 0x43041c
cmp eax, 0x2d
je 0x430363
cmp eax, 0x30
jne 0x43032a
lea eax, [esp + 0x1c]
push eax
push 4
push esi
call sym.ruby187c.exc_ruby_scan_oct
add esi, dword [esp + 0x28]
add esp, 0xc
cmp eax, 0xff
jle 0x43014b
mov dword [sym.ruby187c.exc_rb_rs], 4
jmp 0x4300e0
test eax, eax
jne 0x43016a
cmp dword [esp + 0x1c], ebx
jl 0x43016a
push 0x484734
call sym.ruby187c.exc_rb_str_new2
pop ecx
mov dword [sym.ruby187c.exc_rb_rs], eax
jmp 0x4300e0
mov byte [esp + 0x3c], al
lea eax, [esp + 0x3c]
push edi
push eax
call sym.ruby187c.exc_rb_str_new
pop ecx
jmp 0x43015f
sub eax, 0x4b
je 0x430244
sub eax, 8
je 0x430233
dec eax
je 0x430203
sub eax, 3
je 0x4301b1
dec eax
je 0x430461
sub eax, 9
jne 0x430694
mov dword [0x495324], ebx
jmp 0x430255
inc esi
mov eax, ebx
cmp byte [esi], 0
je 0x4301d5
lea eax, [esp + 0x20]
push eax
push edi
push esi
call sym.ruby187c.exc_ruby_scan_oct
add esp, 0xc
cmp dword [esp + 0x20], 0
jne 0x4301d1
mov eax, edi
add esi, dword [esp + 0x20]
sub eax, 0
je 0x4301f4
dec eax
je 0x4301e8
mov dword [sym.ruby187c.exc_ruby_verbose], ebx
jmp 0x4300e0
and dword [sym.ruby187c.exc_ruby_verbose], 0
jmp 0x4300e0
mov dword [sym.ruby187c.exc_ruby_verbose], 4
jmp 0x4300e0
inc esi
mov eax, edi
cmp byte [esi], 0
je 0x430227
lea eax, [esp + 0x24]
push eax
push ebx
push esi
call sym.ruby187c.exc_ruby_scan_oct
add esp, 0xc
cmp dword [esp + 0x24], 0
jne 0x430223
mov eax, edi
add esi, dword [esp + 0x24]
push eax
call sym.ruby187c.exc_rb_set_safe_level
pop ecx
jmp 0x4300e0
push 0x484730
call fcn.00430c97
pop ecx
mov dword [esp + 0x30], ebx
jmp 0x430255
inc esi
cmp byte [esi], 0
je 0x4300e0
push esi
call sym.ruby187c.exc_rb_set_kcode
pop ecx
inc esi
jmp 0x4300e0
mov dword [0x49531c], ebx
jmp 0x430255
cmp eax, 0x70
jg 0x4302bd
je 0x4302af
sub eax, 0x64
je 0x4302a7
dec eax
je 0x4304c7
sub eax, 3
je 0x43065a
dec eax
je 0x430499
sub eax, 3
je 0x430295
sub eax, ebx
jne 0x430694
jmp 0x4302b5
mov eax, dword [sym.ruby187c.exc_rb_rs]
mov dword [0x495320], ebx
mov dword [sym.ruby187c.exc_rb_output_rs], eax
jmp 0x430255
mov dword [sym.ruby187c.exc_ruby_debug], ebx
jmp 0x430309
mov dword [0x495318], ebx
mov dword [0x495314], ebx
jmp 0x430255
sub eax, 0x72
je 0x43054d
dec eax
je 0x430314
sub eax, 3
je 0x4302ea
dec eax
je 0x430309
dec eax
je 0x43052f
dec eax
jne 0x430694
mov dword [sym.ruby187c.exc_ruby_yydebug], edi
jmp 0x430255
cmp dword [esp + 0x18], 0
je 0x430255
cmp dword [esp + 0x14], 0
jne 0x430255
call sym.ruby187c.exc_ruby_show_version
mov dword [esp + 0x14], edi
mov dword [sym.ruby187c.exc_ruby_verbose], ebx
jmp 0x430255
push 0x48472c
call fcn.00430c97
pop ecx
mov dword [0x495308], edi
jmp 0x430255
cmp eax, 0x43
je 0x430461
cmp eax, 0x46
jne 0x430694
inc esi
cmp byte [esi], 0
je 0x430580
push 0
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
call sym.ruby187c.exc_rb_reg_new
add esp, 0xc
mov dword [sym.ruby187c.exc_rb_fs], eax
jmp 0x430580
mov al, byte [esi + 1]
lea edi, [esi + 1]
test al, al
je 0x430639
cmp al, 0xd
jne 0x43037f
cmp byte [esi + 2], 0
je 0x430639
push edi
push str.copyright
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x43039d
mov dword [esp + 0x2c], 1
jmp 0x430580
push edi
push str.debug
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x4303b6
mov dword [sym.ruby187c.exc_ruby_debug], ebx
jmp 0x4303ed
push edi
push str.version
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x4303d4
mov dword [esp + 0x28], 1
jmp 0x430580
push edi
push str.verbose
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x4303f8
mov dword [esp + 0x14], 1
mov dword [sym.ruby187c.exc_ruby_verbose], ebx
jmp 0x430580
push edi
push str.yydebug
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x4305ed
mov dword [sym.ruby187c.exc_ruby_yydebug], 1
jmp 0x430580
cmp byte [esi + 1], 0
jne 0x430694
jmp 0x430580
push 0x4846fc
call fcn.00430c97
inc esi
pop ecx
cmp byte [esi], 0
je 0x430448
push esi
call sym.ruby187c.exc_ruby_incpush
pop ecx
jmp 0x430580
mov eax, dword [ebp + 4]
lea esi, [ebp + 4]
test eax, eax
je 0x430580
push eax
call sym.ruby187c.exc_ruby_incpush
jmp 0x430579
inc esi
cmp byte [esi], 0
jne 0x430473
mov esi, dword [ebp + 4]
dec dword [esp + 0x38]
lea eax, [ebp + 4]
mov ebp, eax
test esi, esi
je 0x430650
cmp byte [esi], 0
je 0x430650
push esi
call dword [sym.imp.MSVCRT.dll__chdir]
test eax, eax
pop ecx
jl 0x430645
jmp 0x430580
push 0x4846f8
call fcn.00430c97
mov eax, dword [sym.ruby187c.exc_ruby_inplace_mode]
pop ecx
test eax, eax
je 0x4304b5
push eax
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
inc esi
push esi
call sym.ruby187c.exc_ruby_strdup
pop ecx
mov dword [sym.ruby187c.exc_ruby_inplace_mode], eax
jmp 0x430580
mov edi, 0x483594
push edi
call fcn.00430c97
inc esi
pop ecx
cmp byte [esi], 0
jne 0x4304e5
mov esi, dword [ebp + 4]
dec dword [esp + 0x38]
lea eax, [ebp + 4]
mov ebp, eax
test esi, esi
je 0x43066f
cmp dword [esp + 0x10], 0
jne 0x430512
push 0
push 0
call sym.ruby187c.exc_rb_str_new
cmp dword [0x4952d0], 0
pop ecx
pop ecx
mov dword [esp + 0x10], eax
jne 0x430512
mov dword [0x4952d0], edi
push esi
push dword [esp + 0x14]
call sym.ruby187c.exc_rb_str_cat2
push 0x480114
push dword [esp + 0x1c]
call sym.ruby187c.exc_rb_str_cat2
add esp, 0x10
jmp 0x430580
inc esi
mov dword [0x49530c], ebx
cmp byte [esi], 0
je 0x430580
push esi
call dword [sym.imp.MSVCRT.dll__chdir]
test eax, eax
pop ecx
jl 0x4306ff
jmp 0x430580
push 0x4846f4
call fcn.00430c97
inc esi
pop ecx
cmp byte [esi], 0
je 0x430569
push esi
call fcn.00430a7b
jmp 0x430442
mov eax, dword [ebp + 4]
lea esi, [ebp + 4]
test eax, eax
je 0x430580
push eax
call fcn.00430a7b
dec dword [esp + 0x3c]
pop ecx
mov ebp, esi
dec dword [esp + 0x38]
add ebp, 4
cmp dword [esp + 0x38], 0
jg 0x4300c4
cmp dword [esp + 0x18], 0
je 0x430a3c
cmp dword [sym.ruby187c.exc_ruby_safe_level], 0
jne 0x430831
push str.RUBYOPT
call sym.ruby187c.exc_rb_w32_getenv
mov esi, eax
pop ecx
test esi, esi
je 0x430831
mov al, byte [esi]
mov edi, dword [sym.imp.MSVCRT.dll__isctype]
cmp al, 0x80
jae 0x43072b
mov ecx, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [ecx], 1
jle 0x43070a
movzx eax, al
push 8
push eax
call edi
pop ecx
pop ecx
jmp 0x43071b
push edi
push str.help
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x430613
mov eax, dword [0x4952f8]
push dword [eax]
call fcn.00430a44
pop ecx
push 0
call dword [sym.imp.MSVCRT.dll_exit]
mov eax, dword [0x4952f8]
push edi
push dword [eax]
mov eax, dword [sym.imp.MSVCRT.dll__iob]
add eax, 0x40
push str._s:_invalid_option____s____h_will_show_valid_options__n
push eax
call dword [sym.imp.MSVCRT.dll_fprintf]
add esp, 0x10
push ebx
call dword [sym.imp.MSVCRT.dll_exit]
dec dword [esp + 0x38]
add ebp, 4
jmp 0x430592
push esi
push str.Cant_chdir_to__s
call sym.ruby187c.exc_rb_fatal
push str.Cant_chdir
call sym.ruby187c.exc_rb_fatal
mov eax, dword [0x4952f8]
push dword [eax]
call fcn.00430a44
pop ecx
push 0
call dword [sym.imp.MSVCRT.dll_exit]
mov eax, dword [0x4952f8]
push dword [eax]
mov eax, dword [sym.imp.MSVCRT.dll__iob]
add eax, 0x40
push str._s:_no_code_specified_for__e_n
push eax
call dword [sym.imp.MSVCRT.dll_fprintf]
add esp, 0xc
push ebx
call dword [sym.imp.MSVCRT.dll_exit]
mov al, byte [esi]
cmp al, 0x80
jae 0x4306d4
mov ecx, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [ecx], edi
jle 0x4306b7
movzx eax, al
push 0x157
push eax
call dword [sym.imp.MSVCRT.dll__isctype]
pop ecx
pop ecx
jmp 0x4306cb
mov ecx, dword [sym.imp.MSVCRT.dll__pctype]
movzx eax, al
mov ecx, dword [ecx]
mov ax, word [ecx + eax*2]
and eax, 0x157
test eax, eax
mov eax, str._s:_invalid_option___c____h_will_show_valid_options__n
jne 0x4306d9
mov eax, str._s:_invalid_option___03o____h_will_show_valid_options__n
movzx ecx, byte [esi]
push ecx
mov ecx, dword [0x4952f8]
push dword [ecx]
push eax
mov eax, dword [sym.imp.MSVCRT.dll__iob]
add eax, 0x40
push eax
call dword [sym.imp.MSVCRT.dll_fprintf]
add esp, 0x10
push ebx
call dword [sym.imp.MSVCRT.dll_exit]
push esi
push str.Cant_chdir_to__s
call sym.ruby187c.exc_rb_fatal
mov ecx, dword [sym.imp.MSVCRT.dll__pctype]
movzx eax, al
mov ecx, dword [ecx]
mov al, byte [ecx + eax*2]
and eax, 8
test eax, eax
je 0x43072b
mov al, byte [esi + 1]
inc esi
cmp al, 0x80
jb 0x4305cf
mov cl, byte [esi]
cmp cl, 0x54
je 0x430802
cmp cl, 0x2d
jne 0x430745
cmp byte [esi + 1], 0x54
je 0x430802
test esi, esi
je 0x430831
mov al, byte [esi]
test al, al
je 0x430831
cmp al, 0x2d
jne 0x4307c5
mov al, byte [esi + 1]
inc esi
cmp al, 0x80
jae 0x4307c5
mov ecx, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [ecx], 1
jle 0x43077a
movzx eax, al
push 8
push eax
call edi
pop ecx
pop ecx
jmp 0x43078b
mov ecx, dword [sym.imp.MSVCRT.dll__pctype]
movzx eax, al
mov ecx, dword [ecx]
mov al, byte [ecx + eax*2]
and eax, 8
test eax, eax
je 0x4307c5
mov al, byte [esi + 1]
inc esi
cmp al, 0x80
jae 0x430745
mov ecx, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [ecx], 1
jle 0x4307ae
movzx eax, al
push 8
push eax
call edi
pop ecx
pop ecx
jmp 0x4307bf
mov ecx, dword [sym.imp.MSVCRT.dll__pctype]
movzx eax, al
mov ecx, dword [ecx]
mov al, byte [ecx + eax*2]
and eax, 8
test eax, eax
jne 0x43078f
jmp 0x430745
mov al, byte [esi]
test al, al
je 0x430831
movsx eax, al
push eax
push str.IdvwWrK
call dword [sym.imp.MSVCRT.dll_strchr]
pop ecx
test eax, eax
pop ecx
je 0x4307ee
push esi
call fcn.0042ff9a
pop ecx
mov esi, eax
jmp 0x430745
movsx eax, byte [esi]
push eax
push str.illegal_switch_in_RUBYOPT:___c
push dword [sym.ruby187c.exc_rb_eRuntimeError]
call sym.ruby187c.exc_rb_raise
push 1
cmp cl, 0x54
pop eax
je 0x43080b
inc esi
inc esi
cmp byte [esi], 0
je 0x43082a
lea eax, [esp + 0x3c]
push eax
push ebx
push esi
call sym.ruby187c.exc_ruby_scan_oct
add esp, 0xc
cmp dword [esp + 0x3c], 0
jne 0x43082a
push 1
pop eax
push eax
call sym.ruby187c.exc_rb_set_safe_level
pop ecx
cmp dword [esp + 0x28], 0
je 0x430845
call sym.ruby187c.exc_ruby_show_version
push 0
call dword [sym.imp.MSVCRT.dll_exit]
cmp dword [esp + 0x2c], 0
je 0x430851
call sym.ruby187c.exc_ruby_show_copyright
cmp dword [sym.ruby187c.exc_ruby_safe_level], 4
push 0xfffffffffffffffb
pop edi
jl 0x430880
mov eax, dword [sym.ruby187c.exc_rb_argv]
mov ecx, pe_nt_image_headers32
test al, 3
jne 0x430871
test edi, eax
je 0x430871
or dword [eax], ecx
mov eax, dword [sym.ruby187c.exc_rb_load_path]
test al, 3
jne 0x430880
test edi, eax
je 0x430880
or dword [eax], ecx
xor eax, eax
cmp dword [esp + 0x10], eax
jne 0x4308ea
cmp dword [esp + 0x38], eax
jne 0x4308a7
cmp dword [esp + 0x14], eax
je 0x43089b
push eax
call dword [sym.imp.MSVCRT.dll_exit]
mov dword [0x4952d0], 0x47fc1c
jmp 0x4308ea
mov eax, dword [ebp]
mov esi, dword [sym.imp.USER32.dll_CharNextA]
mov dword [0x4952d0], eax
mov eax, dword [ebp]
mov cl, byte [eax]
test cl, cl
je 0x4308cf
cmp cl, 0x5c
jne 0x4308c6
mov byte [eax], 0x2f
push eax
call esi
mov cl, byte [eax]
test cl, cl
jne 0x4308be
mov eax, dword [0x4952d0]
cmp byte [eax], 0
jne 0x430943
mov dword [0x4952d0], 0x47fc1c
dec dword [esp + 0x38]
add ebp, 4
push dword [0x4952d0]
call sym.ruby187c.exc_ruby_script
push ebp
push dword [esp + 0x40]
call sym.ruby187c.exc_ruby_set_argv
call fcn.00430ab8
call sym.ruby187c.exc_ruby_init_loadpath
push dword [esp + 0x24]
call sym.ruby187c.exc_rb_source_filename
add esp, 0x10
cmp dword [esp + 0x10], 0
mov dword [sym.ruby187c.exc_ruby_sourcefile], eax
je 0x4309d8
call fcn.0042fec3
push 1
push dword [esp + 0x14]
push dword [0x4952d0]
call sym.ruby187c.exc_rb_compile_string
add esp, 0xc
jmp 0x430a04
xor ebx, ebx
cmp dword [esp + 0x30], ebx
je 0x4308e3
push str.RUBYPATH
call sym.ruby187c.exc_rb_w32_getenv
cmp eax, ebx
pop ecx
mov dword [0x4952d0], ebx
je 0x430974
push eax
push dword [ebp]
call sym.ruby187c.exc_dln_find_file
pop ecx
cmp eax, ebx
pop ecx
mov dword [0x4952d0], eax
jne 0x43099b
push str.PATH
call sym.ruby187c.exc_rb_w32_getenv
push eax
push dword [ebp]
call sym.ruby187c.exc_dln_find_file
add esp, 0xc
cmp eax, ebx
mov dword [0x4952d0], eax
jne 0x43099b
mov eax, dword [ebp]
mov dword [0x4952d0], eax
push eax
call sym.ruby187c.exc_rb_source_filename
push ebx
push ebx
push ebx
push 0x5f
mov dword [sym.ruby187c.exc_ruby_sourcefile], eax
mov dword [0x4952d0], eax
call sym.ruby187c.exc_rb_node_newnode
add esp, 0x14
mov dword [esp + 0x3c], eax
mov eax, dword [sym.ruby187c.exc_ruby_sourcefile]
mov cl, byte [eax]
test cl, cl
je 0x4308e3
cmp cl, 0x5c
jne 0x4309d3
mov byte [eax], 0x2f
push eax
call esi
jmp 0x4309c1
push dword [0x4952d0]
call sub.MSVCRT.dll_strlen
cmp eax, 1
mov eax, dword [0x4952d0]
pop ecx
jne 0x4309fa
cmp byte [eax], 0x2d
jne 0x4309fa
call fcn.00430c53
jmp 0x430a04
push 1
push eax
call fcn.0042fb96
pop ecx
pop ecx
call fcn.00430ab8
and dword [0x49530c], 0
cmp dword [sym.ruby187c.exc_ruby_safe_level], 4
jl 0x430a3c
mov eax, dword [sym.ruby187c.exc_rb_argv]
mov ecx, 0xfffffeff
test al, 3
jne 0x430a2d
test edi, eax
je 0x430a2d
and dword [eax], ecx
mov eax, dword [sym.ruby187c.exc_rb_load_path]
test al, 3
jne 0x430a3c
test edi, eax
je 0x430a3c
and dword [eax], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret