Function at 0x427c81
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 0x428643
dec dword [esp + 0x38]
add ebp, 4
cmp dword [esp + 0x38], eax
push 2
mov dword [esp + 0x34], eax
pop ebx
jle 0x428199
mov eax, dword [ebp]
cmp byte [eax], 0x2d
jne 0x428199
cmp byte [eax + 1], 0
lea esi, [eax + 1]
je 0x428199
push 1
pop edi
movsx eax, byte [esi]
cmp eax, 0x63
jg 0x427e6a
je 0x427e62
cmp eax, 0x49
jg 0x427d83
je 0x428032
test eax, eax
je 0x428187
cmp eax, 0xd
je 0x428023
cmp eax, 0x2d
je 0x427f6a
cmp eax, 0x30
jne 0x427f31
lea eax, [esp + 0x1c]
push eax
push 4
push esi
call sym.ruby187g.exc_ruby_scan_oct
add esi, dword [esp + 0x28]
add esp, 0xc
cmp eax, 0xff
jle 0x427d52
mov dword [sym.ruby187g.exc_rb_rs], 4
jmp 0x427ce7
test eax, eax
jne 0x427d71
cmp dword [esp + 0x1c], ebx
jl 0x427d71
push 0x483cac
call sym.ruby187g.exc_rb_str_new2
pop ecx
mov dword [sym.ruby187g.exc_rb_rs], eax
jmp 0x427ce7
mov byte [esp + 0x3c], al
lea eax, [esp + 0x3c]
push edi
push eax
call sym.ruby187g.exc_rb_str_new
pop ecx
jmp 0x427d66
sub eax, 0x4b
je 0x427e4b
sub eax, 8
je 0x427e3a
dec eax
je 0x427e0a
sub eax, 3
je 0x427db8
dec eax
je 0x428068
sub eax, 9
jne 0x42829b
mov dword [0x49628c], ebx
jmp 0x427e5c
inc esi
mov eax, ebx
cmp byte [esi], 0
je 0x427ddc
lea eax, [esp + 0x20]
push eax
push edi
push esi
call sym.ruby187g.exc_ruby_scan_oct
add esp, 0xc
cmp dword [esp + 0x20], 0
jne 0x427dd8
mov eax, edi
add esi, dword [esp + 0x20]
sub eax, 0
je 0x427dfb
dec eax
je 0x427def
mov dword [sym.ruby187g.exc_ruby_verbose], ebx
jmp 0x427ce7
and dword [sym.ruby187g.exc_ruby_verbose], 0
jmp 0x427ce7
mov dword [sym.ruby187g.exc_ruby_verbose], 4
jmp 0x427ce7
inc esi
mov eax, edi
cmp byte [esi], 0
je 0x427e2e
lea eax, [esp + 0x24]
push eax
push ebx
push esi
call sym.ruby187g.exc_ruby_scan_oct
add esp, 0xc
cmp dword [esp + 0x24], 0
jne 0x427e2a
mov eax, edi
add esi, dword [esp + 0x24]
push eax
call sym.ruby187g.exc_rb_set_safe_level
pop ecx
jmp 0x427ce7
push 0x483ca8
call fcn.0042889e
pop ecx
mov dword [esp + 0x30], ebx
jmp 0x427e5c
inc esi
cmp byte [esi], 0
je 0x427ce7
push esi
call sym.ruby187g.exc_rb_set_kcode
pop ecx
inc esi
jmp 0x427ce7
mov dword [0x496284], ebx
jmp 0x427e5c
cmp eax, 0x70
jg 0x427ec4
je 0x427eb6
sub eax, 0x64
je 0x427eae
dec eax
je 0x4280ce
sub eax, 3
je 0x428261
dec eax
je 0x4280a0
sub eax, 3
je 0x427e9c
sub eax, ebx
jne 0x42829b
jmp 0x427ebc
mov eax, dword [sym.ruby187g.exc_rb_rs]
mov dword [0x496288], ebx
mov dword [sym.ruby187g.exc_rb_output_rs], eax
jmp 0x427e5c
mov dword [sym.ruby187g.exc_ruby_debug], ebx
jmp 0x427f10
mov dword [0x496280], ebx
mov dword [0x49627c], ebx
jmp 0x427e5c
sub eax, 0x72
je 0x428154
dec eax
je 0x427f1b
sub eax, 3
je 0x427ef1
dec eax
je 0x427f10
dec eax
je 0x428136
dec eax
jne 0x42829b
mov dword [sym.ruby187g.exc_ruby_yydebug], edi
jmp 0x427e5c
cmp dword [esp + 0x18], 0
je 0x427e5c
cmp dword [esp + 0x14], 0
jne 0x427e5c
call sym.ruby187g.exc_ruby_show_version
mov dword [esp + 0x14], edi
mov dword [sym.ruby187g.exc_ruby_verbose], ebx
jmp 0x427e5c
push 0x483ca4
call fcn.0042889e
pop ecx
mov dword [0x496270], edi
jmp 0x427e5c
cmp eax, 0x43
je 0x428068
cmp eax, 0x46
jne 0x42829b
inc esi
cmp byte [esi], 0
je 0x428187
push 0
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
call sym.ruby187g.exc_rb_reg_new
add esp, 0xc
mov dword [sym.ruby187g.exc_rb_fs], eax
jmp 0x428187
mov al, byte [esi + 1]
lea edi, [esi + 1]
test al, al
je 0x428240
cmp al, 0xd
jne 0x427f86
cmp byte [esi + 2], 0
je 0x428240
push edi
push str.copyright
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x427fa4
mov dword [esp + 0x2c], 1
jmp 0x428187
push edi
push 0x483c90
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x427fbd
mov dword [sym.ruby187g.exc_ruby_debug], ebx
jmp 0x427ff4
push edi
push 0x483c88
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x427fdb
mov dword [esp + 0x28], 1
jmp 0x428187
push edi
push str.verbose
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x427fff
mov dword [esp + 0x14], 1
mov dword [sym.ruby187g.exc_ruby_verbose], ebx
jmp 0x428187
push edi
push str.yydebug
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x4281f4
mov dword [sym.ruby187g.exc_ruby_yydebug], 1
jmp 0x428187
cmp byte [esi + 1], 0
jne 0x42829b
jmp 0x428187
push 0x483c74
call fcn.0042889e
inc esi
pop ecx
cmp byte [esi], 0
je 0x42804f
push esi
call sym.ruby187g.exc_ruby_incpush
pop ecx
jmp 0x428187
mov eax, dword [ebp + 4]
lea esi, [ebp + 4]
test eax, eax
je 0x428187
push eax
call sym.ruby187g.exc_ruby_incpush
jmp 0x428180
inc esi
cmp byte [esi], 0
jne 0x42807a
mov esi, dword [ebp + 4]
dec dword [esp + 0x38]
lea eax, [ebp + 4]
mov ebp, eax
test esi, esi
je 0x428257
cmp byte [esi], 0
je 0x428257
push esi
call dword [sym.imp.MSVCRT.dll__chdir]
test eax, eax
pop ecx
jl 0x42824c
jmp 0x428187
push 0x483c70
call fcn.0042889e
mov eax, dword [sym.ruby187g.exc_ruby_inplace_mode]
pop ecx
test eax, eax
je 0x4280bc
push eax
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
inc esi
push esi
call sym.ruby187g.exc_ruby_strdup
pop ecx
mov dword [sym.ruby187g.exc_ruby_inplace_mode], eax
jmp 0x428187
mov edi, 0x483c6c
push edi
call fcn.0042889e
inc esi
pop ecx
cmp byte [esi], 0
jne 0x4280ec
mov esi, dword [ebp + 4]
dec dword [esp + 0x38]
lea eax, [ebp + 4]
mov ebp, eax
test esi, esi
je 0x428276
cmp dword [esp + 0x10], 0
jne 0x428119
push 0
push 0
call sym.ruby187g.exc_rb_str_new
cmp dword [0x496238], 0
pop ecx
pop ecx
mov dword [esp + 0x10], eax
jne 0x428119
mov dword [0x496238], edi
push esi
push dword [esp + 0x14]
call sym.ruby187g.exc_rb_str_cat2
push 0x47f518
push dword [esp + 0x1c]
call sym.ruby187g.exc_rb_str_cat2
add esp, 0x10
jmp 0x428187
inc esi
mov dword [0x496274], ebx
cmp byte [esi], 0
je 0x428187
push esi
call dword [sym.imp.MSVCRT.dll__chdir]
test eax, eax
pop ecx
jl 0x428306
jmp 0x428187
push 0x483c68
call fcn.0042889e
inc esi
pop ecx
cmp byte [esi], 0
je 0x428170
push esi
call fcn.00428682
jmp 0x428049
mov eax, dword [ebp + 4]
lea esi, [ebp + 4]
test eax, eax
je 0x428187
push eax
call fcn.00428682
dec dword [esp + 0x3c]
pop ecx
mov ebp, esi
dec dword [esp + 0x38]
add ebp, 4
cmp dword [esp + 0x38], 0
jg 0x427ccb
cmp dword [esp + 0x18], 0
je 0x428643
cmp dword [sym.ruby187g.exc_ruby_safe_level], 0
jne 0x428438
push str.RUBYOPT
call sym.ruby187g.exc_rb_w32_getenv
mov esi, eax
pop ecx
test esi, esi
je 0x428438
mov al, byte [esi]
mov edi, dword [sym.imp.MSVCRT.dll__isctype]
cmp al, 0x80
jae 0x428332
mov ecx, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [ecx], 1
jle 0x428311
movzx eax, al
push 8
push eax
call edi
pop ecx
pop ecx
jmp 0x428322
push edi
push str.help
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x42821a
mov eax, dword [0x496260]
push dword [eax]
call fcn.0042864b
pop ecx
push 0
call dword [sym.imp.MSVCRT.dll_exit]
mov eax, dword [0x496260]
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 0x428199
push esi
push str.Cant_chdir_to__s
call sym.ruby187g.exc_rb_fatal
push str.Cant_chdir
call sym.ruby187g.exc_rb_fatal
mov eax, dword [0x496260]
push dword [eax]
call fcn.0042864b
pop ecx
push 0
call dword [sym.imp.MSVCRT.dll_exit]
mov eax, dword [0x496260]
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 0x4282db
mov ecx, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [ecx], edi
jle 0x4282be
movzx eax, al
push 0x157
push eax
call dword [sym.imp.MSVCRT.dll__isctype]
pop ecx
pop ecx
jmp 0x4282d2
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 0x4282e0
mov eax, str._s:_invalid_option___03o____h_will_show_valid_options__n
movzx ecx, byte [esi]
push ecx
mov ecx, dword [0x496260]
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.ruby187g.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 0x428332
mov al, byte [esi + 1]
inc esi
cmp al, 0x80
jb 0x4281d6
mov cl, byte [esi]
cmp cl, 0x54
je 0x428409
cmp cl, 0x2d
jne 0x42834c
cmp byte [esi + 1], 0x54
je 0x428409
test esi, esi
je 0x428438
mov al, byte [esi]
test al, al
je 0x428438
cmp al, 0x2d
jne 0x4283cc
mov al, byte [esi + 1]
inc esi
cmp al, 0x80
jae 0x4283cc
mov ecx, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [ecx], 1
jle 0x428381
movzx eax, al
push 8
push eax
call edi
pop ecx
pop ecx
jmp 0x428392
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 0x4283cc
mov al, byte [esi + 1]
inc esi
cmp al, 0x80
jae 0x42834c
mov ecx, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [ecx], 1
jle 0x4283b5
movzx eax, al
push 8
push eax
call edi
pop ecx
pop ecx
jmp 0x4283c6
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 0x428396
jmp 0x42834c
mov al, byte [esi]
test al, al
je 0x428438
movsx eax, al
push eax
push str.IdvwWrK
call dword [sym.imp.MSVCRT.dll_strchr]
pop ecx
test eax, eax
pop ecx
je 0x4283f5
push esi
call fcn.00427ba1
pop ecx
mov esi, eax
jmp 0x42834c
movsx eax, byte [esi]
push eax
push str.illegal_switch_in_RUBYOPT:___c
push dword [sym.ruby187g.exc_rb_eRuntimeError]
call sym.ruby187g.exc_rb_raise
push 1
cmp cl, 0x54
pop eax
je 0x428412
inc esi
inc esi
cmp byte [esi], 0
je 0x428431
lea eax, [esp + 0x3c]
push eax
push ebx
push esi
call sym.ruby187g.exc_ruby_scan_oct
add esp, 0xc
cmp dword [esp + 0x3c], 0
jne 0x428431
push 1
pop eax
push eax
call sym.ruby187g.exc_rb_set_safe_level
pop ecx
cmp dword [esp + 0x28], 0
je 0x42844c
call sym.ruby187g.exc_ruby_show_version
push 0
call dword [sym.imp.MSVCRT.dll_exit]
cmp dword [esp + 0x2c], 0
je 0x428458
call sym.ruby187g.exc_ruby_show_copyright
cmp dword [sym.ruby187g.exc_ruby_safe_level], 4
push 0xfffffffffffffffb
pop edi
jl 0x428487
mov eax, dword [sym.ruby187g.exc_rb_argv]
mov ecx, pe_nt_image_headers32
test al, 3
jne 0x428478
test edi, eax
je 0x428478
or dword [eax], ecx
mov eax, dword [sym.ruby187g.exc_rb_load_path]
test al, 3
jne 0x428487
test edi, eax
je 0x428487
or dword [eax], ecx
xor eax, eax
cmp dword [esp + 0x10], eax
jne 0x4284f1
cmp dword [esp + 0x38], eax
jne 0x4284ae
cmp dword [esp + 0x14], eax
je 0x4284a2
push eax
call dword [sym.imp.MSVCRT.dll_exit]
mov dword [0x496238], 0x480e08
jmp 0x4284f1
mov eax, dword [ebp]
mov esi, dword [sym.imp.USER32.dll_CharNextA]
mov dword [0x496238], eax
mov eax, dword [ebp]
mov cl, byte [eax]
test cl, cl
je 0x4284d6
cmp cl, 0x5c
jne 0x4284cd
mov byte [eax], 0x2f
push eax
call esi
mov cl, byte [eax]
test cl, cl
jne 0x4284c5
mov eax, dword [0x496238]
cmp byte [eax], 0
jne 0x42854a
mov dword [0x496238], 0x480e08
dec dword [esp + 0x38]
add ebp, 4
push dword [0x496238]
call sym.ruby187g.exc_ruby_script
push ebp
push dword [esp + 0x40]
call sym.ruby187g.exc_ruby_set_argv
call fcn.004286bf
call sym.ruby187g.exc_ruby_init_loadpath
push dword [esp + 0x24]
call sym.ruby187g.exc_rb_source_filename
add esp, 0x10
cmp dword [esp + 0x10], 0
mov dword [sym.ruby187g.exc_ruby_sourcefile], eax
je 0x4285df
call fcn.00427aca
push 1
push dword [esp + 0x14]
push dword [0x496238]
call sym.ruby187g.exc_rb_compile_string
add esp, 0xc
jmp 0x42860b
xor ebx, ebx
cmp dword [esp + 0x30], ebx
je 0x4284ea
push str.RUBYPATH
call sym.ruby187g.exc_rb_w32_getenv
cmp eax, ebx
pop ecx
mov dword [0x496238], ebx
je 0x42857b
push eax
push dword [ebp]
call sym.ruby187g.exc_dln_find_file
pop ecx
cmp eax, ebx
pop ecx
mov dword [0x496238], eax
jne 0x4285a2
push str.PATH
call sym.ruby187g.exc_rb_w32_getenv
push eax
push dword [ebp]
call sym.ruby187g.exc_dln_find_file
add esp, 0xc
cmp eax, ebx
mov dword [0x496238], eax
jne 0x4285a2
mov eax, dword [ebp]
mov dword [0x496238], eax
push eax
call sym.ruby187g.exc_rb_source_filename
push ebx
push ebx
push ebx
push 0x5f
mov dword [sym.ruby187g.exc_ruby_sourcefile], eax
mov dword [0x496238], eax
call sym.ruby187g.exc_rb_node_newnode
add esp, 0x14
mov dword [esp + 0x3c], eax
mov eax, dword [sym.ruby187g.exc_ruby_sourcefile]
mov cl, byte [eax]
test cl, cl
je 0x4284ea
cmp cl, 0x5c
jne 0x4285da
mov byte [eax], 0x2f
push eax
call esi
jmp 0x4285c8
push dword [0x496238]
call sub.MSVCRT.dll_strlen
cmp eax, 1
mov eax, dword [0x496238]
pop ecx
jne 0x428601
cmp byte [eax], 0x2d
jne 0x428601
call fcn.0042885a
jmp 0x42860b
push 1
push eax
call fcn.0042779d
pop ecx
pop ecx
call fcn.004286bf
and dword [0x496274], 0
cmp dword [sym.ruby187g.exc_ruby_safe_level], 4
jl 0x428643
mov eax, dword [sym.ruby187g.exc_rb_argv]
mov ecx, 0xfffffeff
test al, 3
jne 0x428634
test edi, eax
je 0x428634
and dword [eax], ecx
mov eax, dword [sym.ruby187g.exc_rb_load_path]
test al, 3
jne 0x428643
test edi, eax
je 0x428643
and dword [eax], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret