Function at 0x427c18
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 0x4285da
dec dword [esp + 0x38]
add ebp, 4
cmp dword [esp + 0x38], eax
push 2
mov dword [esp + 0x34], eax
pop ebx
jle 0x428130
mov eax, dword [ebp]
cmp byte [eax], 0x2d
jne 0x428130
cmp byte [eax + 1], 0
lea esi, [eax + 1]
je 0x428130
push 1
pop edi
movsx eax, byte [esi]
cmp eax, 0x63
jg 0x427e01
je 0x427df9
cmp eax, 0x49
jg 0x427d1a
je 0x427fc9
test eax, eax
je 0x42811e
cmp eax, 0xd
je 0x427fba
cmp eax, 0x2d
je 0x427f01
cmp eax, 0x30
jne 0x427ec8
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 0x427ce9
mov dword [sym.ruby187g.exc_rb_rs], 4
jmp 0x427c7e
test eax, eax
jne 0x427d08
cmp dword [esp + 0x1c], ebx
jl 0x427d08
push 0x482cac
call sym.ruby187g.exc_rb_str_new2
pop ecx
mov dword [sym.ruby187g.exc_rb_rs], eax
jmp 0x427c7e
mov byte [esp + 0x3c], al
lea eax, [esp + 0x3c]
push edi
push eax
call sym.ruby187g.exc_rb_str_new
pop ecx
jmp 0x427cfd
sub eax, 0x4b
je 0x427de2
sub eax, 8
je 0x427dd1
dec eax
je 0x427da1
sub eax, 3
je 0x427d4f
dec eax
je 0x427fff
sub eax, 9
jne 0x428232
mov dword [0x49528c], ebx
jmp 0x427df3
inc esi
mov eax, ebx
cmp byte [esi], 0
je 0x427d73
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 0x427d6f
mov eax, edi
add esi, dword [esp + 0x20]
sub eax, 0
je 0x427d92
dec eax
je 0x427d86
mov dword [sym.ruby187g.exc_ruby_verbose], ebx
jmp 0x427c7e
and dword [sym.ruby187g.exc_ruby_verbose], 0
jmp 0x427c7e
mov dword [sym.ruby187g.exc_ruby_verbose], 4
jmp 0x427c7e
inc esi
mov eax, edi
cmp byte [esi], 0
je 0x427dc5
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 0x427dc1
mov eax, edi
add esi, dword [esp + 0x24]
push eax
call sym.ruby187g.exc_rb_set_safe_level
pop ecx
jmp 0x427c7e
push 0x482ca8
call fcn.00428835
pop ecx
mov dword [esp + 0x30], ebx
jmp 0x427df3
inc esi
cmp byte [esi], 0
je 0x427c7e
push esi
call sym.ruby187g.exc_rb_set_kcode
pop ecx
inc esi
jmp 0x427c7e
mov dword [0x495284], ebx
jmp 0x427df3
cmp eax, 0x70
jg 0x427e5b
je 0x427e4d
sub eax, 0x64
je 0x427e45
dec eax
je 0x428065
sub eax, 3
je 0x4281f8
dec eax
je 0x428037
sub eax, 3
je 0x427e33
sub eax, ebx
jne 0x428232
jmp 0x427e53
mov eax, dword [sym.ruby187g.exc_rb_rs]
mov dword [0x495288], ebx
mov dword [sym.ruby187g.exc_rb_output_rs], eax
jmp 0x427df3
mov dword [sym.ruby187g.exc_ruby_debug], ebx
jmp 0x427ea7
mov dword [0x495280], ebx
mov dword [0x49527c], ebx
jmp 0x427df3
sub eax, 0x72
je 0x4280eb
dec eax
je 0x427eb2
sub eax, 3
je 0x427e88
dec eax
je 0x427ea7
dec eax
je 0x4280cd
dec eax
jne 0x428232
mov dword [sym.ruby187g.exc_ruby_yydebug], edi
jmp 0x427df3
cmp dword [esp + 0x18], 0
je 0x427df3
cmp dword [esp + 0x14], 0
jne 0x427df3
call sym.ruby187g.exc_ruby_show_version
mov dword [esp + 0x14], edi
mov dword [sym.ruby187g.exc_ruby_verbose], ebx
jmp 0x427df3
push 0x482ca4
call fcn.00428835
pop ecx
mov dword [0x495270], edi
jmp 0x427df3
cmp eax, 0x43
je 0x427fff
cmp eax, 0x46
jne 0x428232
inc esi
cmp byte [esi], 0
je 0x42811e
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 0x42811e
mov al, byte [esi + 1]
lea edi, [esi + 1]
test al, al
je 0x4281d7
cmp al, 0xd
jne 0x427f1d
cmp byte [esi + 2], 0
je 0x4281d7
push edi
push str.copyright
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x427f3b
mov dword [esp + 0x2c], 1
jmp 0x42811e
push edi
push str.debug
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x427f54
mov dword [sym.ruby187g.exc_ruby_debug], ebx
jmp 0x427f8b
push edi
push str.version
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x427f72
mov dword [esp + 0x28], 1
jmp 0x42811e
push edi
push str.verbose
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x427f96
mov dword [esp + 0x14], 1
mov dword [sym.ruby187g.exc_ruby_verbose], ebx
jmp 0x42811e
push edi
push str.yydebug
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x42818b
mov dword [sym.ruby187g.exc_ruby_yydebug], 1
jmp 0x42811e
cmp byte [esi + 1], 0
jne 0x428232
jmp 0x42811e
push 0x482c74
call fcn.00428835
inc esi
pop ecx
cmp byte [esi], 0
je 0x427fe6
push esi
call sym.ruby187g.exc_ruby_incpush
pop ecx
jmp 0x42811e
mov eax, dword [ebp + 4]
lea esi, [ebp + 4]
test eax, eax
je 0x42811e
push eax
call sym.ruby187g.exc_ruby_incpush
jmp 0x428117
inc esi
cmp byte [esi], 0
jne 0x428011
mov esi, dword [ebp + 4]
dec dword [esp + 0x38]
lea eax, [ebp + 4]
mov ebp, eax
test esi, esi
je 0x4281ee
cmp byte [esi], 0
je 0x4281ee
push esi
call dword [sym.imp.MSVCRT.dll__chdir]
test eax, eax
pop ecx
jl 0x4281e3
jmp 0x42811e
push 0x482c70
call fcn.00428835
mov eax, dword [sym.ruby187g.exc_ruby_inplace_mode]
pop ecx
test eax, eax
je 0x428053
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 0x42811e
mov edi, 0x482c6c
push edi
call fcn.00428835
inc esi
pop ecx
cmp byte [esi], 0
jne 0x428083
mov esi, dword [ebp + 4]
dec dword [esp + 0x38]
lea eax, [ebp + 4]
mov ebp, eax
test esi, esi
je 0x42820d
cmp dword [esp + 0x10], 0
jne 0x4280b0
push 0
push 0
call sym.ruby187g.exc_rb_str_new
cmp dword [0x495238], 0
pop ecx
pop ecx
mov dword [esp + 0x10], eax
jne 0x4280b0
mov dword [0x495238], edi
push esi
push dword [esp + 0x14]
call sym.ruby187g.exc_rb_str_cat2
push 0x47e518
push dword [esp + 0x1c]
call sym.ruby187g.exc_rb_str_cat2
add esp, 0x10
jmp 0x42811e
inc esi
mov dword [0x495274], ebx
cmp byte [esi], 0
je 0x42811e
push esi
call dword [sym.imp.MSVCRT.dll__chdir]
test eax, eax
pop ecx
jl 0x42829d
jmp 0x42811e
push 0x482c68
call fcn.00428835
inc esi
pop ecx
cmp byte [esi], 0
je 0x428107
push esi
call fcn.00428619
jmp 0x427fe0
mov eax, dword [ebp + 4]
lea esi, [ebp + 4]
test eax, eax
je 0x42811e
push eax
call fcn.00428619
dec dword [esp + 0x3c]
pop ecx
mov ebp, esi
dec dword [esp + 0x38]
add ebp, 4
cmp dword [esp + 0x38], 0
jg 0x427c62
cmp dword [esp + 0x18], 0
je 0x4285da
cmp dword [sym.ruby187g.exc_ruby_safe_level], 0
jne 0x4283cf
push str.RUBYOPT
call sym.ruby187g.exc_rb_w32_getenv
mov esi, eax
pop ecx
test esi, esi
je 0x4283cf
mov al, byte [esi]
mov edi, dword [sym.imp.MSVCRT.dll__isctype]
cmp al, 0x80
jae 0x4282c9
mov ecx, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [ecx], 1
jle 0x4282a8
movzx eax, al
push 8
push eax
call edi
pop ecx
pop ecx
jmp 0x4282b9
push edi
push str.help
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x4281b1
mov eax, dword [0x495260]
push dword [eax]
call fcn.004285e2
pop ecx
push 0
call dword [sym.imp.MSVCRT.dll_exit]
mov eax, dword [0x495260]
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 0x428130
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 [0x495260]
push dword [eax]
call fcn.004285e2
pop ecx
push 0
call dword [sym.imp.MSVCRT.dll_exit]
mov eax, dword [0x495260]
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 0x428272
mov ecx, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [ecx], edi
jle 0x428255
movzx eax, al
push 0x157
push eax
call dword [sym.imp.MSVCRT.dll__isctype]
pop ecx
pop ecx
jmp 0x428269
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 0x428277
mov eax, str._s:_invalid_option___03o____h_will_show_valid_options__n
movzx ecx, byte [esi]
push ecx
mov ecx, dword [0x495260]
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 0x4282c9
mov al, byte [esi + 1]
inc esi
cmp al, 0x80
jb 0x42816d
mov cl, byte [esi]
cmp cl, 0x54
je 0x4283a0
cmp cl, 0x2d
jne 0x4282e3
cmp byte [esi + 1], 0x54
je 0x4283a0
test esi, esi
je 0x4283cf
mov al, byte [esi]
test al, al
je 0x4283cf
cmp al, 0x2d
jne 0x428363
mov al, byte [esi + 1]
inc esi
cmp al, 0x80
jae 0x428363
mov ecx, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [ecx], 1
jle 0x428318
movzx eax, al
push 8
push eax
call edi
pop ecx
pop ecx
jmp 0x428329
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 0x428363
mov al, byte [esi + 1]
inc esi
cmp al, 0x80
jae 0x4282e3
mov ecx, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [ecx], 1
jle 0x42834c
movzx eax, al
push 8
push eax
call edi
pop ecx
pop ecx
jmp 0x42835d
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 0x42832d
jmp 0x4282e3
mov al, byte [esi]
test al, al
je 0x4283cf
movsx eax, al
push eax
push str.IdvwWrK
call dword [sym.imp.MSVCRT.dll_strchr]
pop ecx
test eax, eax
pop ecx
je 0x42838c
push esi
call fcn.00427b38
pop ecx
mov esi, eax
jmp 0x4282e3
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 0x4283a9
inc esi
inc esi
cmp byte [esi], 0
je 0x4283c8
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 0x4283c8
push 1
pop eax
push eax
call sym.ruby187g.exc_rb_set_safe_level
pop ecx
cmp dword [esp + 0x28], 0
je 0x4283e3
call sym.ruby187g.exc_ruby_show_version
push 0
call dword [sym.imp.MSVCRT.dll_exit]
cmp dword [esp + 0x2c], 0
je 0x4283ef
call sym.ruby187g.exc_ruby_show_copyright
cmp dword [sym.ruby187g.exc_ruby_safe_level], 4
push 0xfffffffffffffffb
pop edi
jl 0x42841e
mov eax, dword [sym.ruby187g.exc_rb_argv]
mov ecx, pe_nt_image_headers32
test al, 3
jne 0x42840f
test edi, eax
je 0x42840f
or dword [eax], ecx
mov eax, dword [sym.ruby187g.exc_rb_load_path]
test al, 3
jne 0x42841e
test edi, eax
je 0x42841e
or dword [eax], ecx
xor eax, eax
cmp dword [esp + 0x10], eax
jne 0x428488
cmp dword [esp + 0x38], eax
jne 0x428445
cmp dword [esp + 0x14], eax
je 0x428439
push eax
call dword [sym.imp.MSVCRT.dll_exit]
mov dword [0x495238], 0x47fe08
jmp 0x428488
mov eax, dword [ebp]
mov esi, dword [sym.imp.USER32.dll_CharNextA]
mov dword [0x495238], eax
mov eax, dword [ebp]
mov cl, byte [eax]
test cl, cl
je 0x42846d
cmp cl, 0x5c
jne 0x428464
mov byte [eax], 0x2f
push eax
call esi
mov cl, byte [eax]
test cl, cl
jne 0x42845c
mov eax, dword [0x495238]
cmp byte [eax], 0
jne 0x4284e1
mov dword [0x495238], 0x47fe08
dec dword [esp + 0x38]
add ebp, 4
push dword [0x495238]
call sym.ruby187g.exc_ruby_script
push ebp
push dword [esp + 0x40]
call sym.ruby187g.exc_ruby_set_argv
call fcn.00428656
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 0x428576
call fcn.00427a61
push 1
push dword [esp + 0x14]
push dword [0x495238]
call sym.ruby187g.exc_rb_compile_string
add esp, 0xc
jmp 0x4285a2
xor ebx, ebx
cmp dword [esp + 0x30], ebx
je 0x428481
push str.RUBYPATH
call sym.ruby187g.exc_rb_w32_getenv
cmp eax, ebx
pop ecx
mov dword [0x495238], ebx
je 0x428512
push eax
push dword [ebp]
call sym.ruby187g.exc_dln_find_file
pop ecx
cmp eax, ebx
pop ecx
mov dword [0x495238], eax
jne 0x428539
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 [0x495238], eax
jne 0x428539
mov eax, dword [ebp]
mov dword [0x495238], 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 [0x495238], 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 0x428481
cmp cl, 0x5c
jne 0x428571
mov byte [eax], 0x2f
push eax
call esi
jmp 0x42855f
push dword [0x495238]
call sub.MSVCRT.dll_strlen
cmp eax, 1
mov eax, dword [0x495238]
pop ecx
jne 0x428598
cmp byte [eax], 0x2d
jne 0x428598
call fcn.004287f1
jmp 0x4285a2
push 1
push eax
call fcn.00427734
pop ecx
pop ecx
call fcn.00428656
and dword [0x495274], 0
cmp dword [sym.ruby187g.exc_ruby_safe_level], 4
jl 0x4285da
mov eax, dword [sym.ruby187g.exc_rb_argv]
mov ecx, 0xfffffeff
test al, 3
jne 0x4285cb
test edi, eax
je 0x4285cb
and dword [eax], ecx
mov eax, dword [sym.ruby187g.exc_rb_load_path]
test al, 3
jne 0x4285da
test edi, eax
je 0x4285da
and dword [eax], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret