Function at 0x402906
Capabilities:
Terminate process

Disassembly:
sub esp, 0x250
push esi
push edi
xor edi, edi
cmp byte [0x40803a], 0
mov dword [esp + 0xc], edi
mov dword [esp + 8], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
je 0x402936
call fcn.004032e5
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
push dword [esp + 0x25c]
lea eax, [esp + 0x2c]
push eax
call sub.MSVCR71.dll_strcpy
lea eax, [esp + 0x30]
push str.lib_
push eax
call sub.MSVCR71.dll_strcat
push dword [esp + 0x270]
lea eax, [esp + 0x3c]
push eax
call sub.MSVCR71.dll_strcat
lea eax, [esp + 0x40]
push str.jvm.cfg
push eax
call sub.MSVCR71.dll_strcat
lea eax, [esp + 0x48]
push 0x405e90
push eax
call dword [sym.imp.MSVCR71.dll_fopen]
mov esi, eax
add esp, 0x28
cmp esi, edi
mov dword [esp + 0x1c], esi
jne 0x4029c1
cmp byte [esp + 0x264], 0
jne 0x4029b9
push 1
lea eax, [esp + 0x2c]
push eax
push str.Error:_could_not_open___s
call fcn.0040338c
add esp, 0xc
push 1
call dword [sym.imp.MSVCR71.dll_exit]
or eax, 0xffffffff
jmp 0x402da7
push esi
lea eax, [esp + 0x144]
push 0x118
push eax
call dword [sym.imp.MSVCR71.dll_fgets]
add esp, 0xc
test eax, eax
je 0x402d6b
push ebx
mov ebx, dword [sym.imp.MSVCR71.dll_fprintf]
push ebp
mov dword [esp + 0x18], edi
or ebp, 0xffffffff
inc dword [esp + 0x10]
cmp byte [esp + 0x148], 0x23
je 0x402d46
cmp byte [esp + 0x148], 0x2d
je 0x402a27
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x14]
mov eax, dword [sym.imp.MSVCR71.dll__iob]
add eax, 0x40
push str.Warning:_no_leading___on_line__d_of___s_n
push eax
call ebx
add esp, 0x10
mov eax, dword [0x40804c]
cmp edi, eax
jl 0x402a85
test eax, eax
jne 0x402a39
push 0xa
pop esi
jmp 0x402a3c
lea esi, [eax + eax]
cmp esi, edi
jg 0x402a42
mov esi, edi
mov eax, esi
shl eax, 4
push eax
call sub.jli.dll_JLI_MemAlloc
mov edi, eax
mov eax, dword [0x408044]
test eax, eax
pop ecx
je 0x402a6d
mov ecx, dword [0x40804c]
shl ecx, 4
push ecx
push eax
push edi
call sub.MSVCR71.dll_memcpy
add esp, 0xc
push dword [0x408044]
call sub.jli.dll_JLI_MemFree
pop ecx
mov dword [0x408044], edi
mov dword [0x40804c], esi
lea eax, [esp + 0x148]
push eax
call sub.MSVCR71.dll_strlen
push dword [0x408010]
lea ecx, [esp + 0x150]
dec ecx
mov byte [eax + ecx], 0
lea eax, [esp + 0x150]
push eax
call dword [sym.imp.MSVCR71.dll_strcspn]
lea esi, [esp + eax + 0x154]
add esp, 0xc
cmp byte [esi], 0
je 0x402adb
push dword [0x408010]
mov byte [esi], 0
inc esi
push esi
call dword [sym.imp.MSVCR71.dll_strspn]
add esi, eax
cmp byte [esi], 0
pop ecx
pop ecx
jne 0x402aee
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x14]
push str.Warning:_missing_VM_type_on_line__d_of___s_n
jmp 0x402c39
mov edi, str.KNOWN
push edi
call sub.MSVCR71.dll_strlen
push eax
push edi
mov edi, dword [sym.imp.MSVCR71.dll_strncmp]
push esi
call edi
add esp, 0x10
test eax, eax
je 0x402c7f
push str.ALIASED_TO
call sub.MSVCR71.dll_strlen
push eax
push str.ALIASED_TO
push esi
call edi
add esp, 0x10
test eax, eax
jne 0x402b85
push dword [0x408010]
mov edi, dword [sym.imp.MSVCR71.dll_strcspn]
push esi
call edi
add esi, eax
cmp byte [esi], 0
pop ecx
pop ecx
je 0x402b57
push dword [0x408010]
push esi
call dword [sym.imp.MSVCR71.dll_strspn]
add esi, eax
cmp byte [esi], 0
pop ecx
pop ecx
jne 0x402b6a
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x14]
push str.Warning:_missing_VM_alias_on_line__d_of___s_n
jmp 0x402c39
push dword [0x408010]
mov dword [esp + 0x20], esi
push esi
call edi
pop ecx
xor ebp, ebp
pop ecx
mov byte [eax + esi], 0
inc ebp
jmp 0x402c81
push str.WARN
call sub.MSVCR71.dll_strlen
push eax
push str.WARN
push esi
call edi
add esp, 0x10
test eax, eax
jne 0x402ba7
push 2
pop ebp
jmp 0x402c81
push str.IGNORE
call sub.MSVCR71.dll_strlen
push eax
push str.IGNORE
push esi
call edi
add esp, 0x10
test eax, eax
jne 0x402bc5
push 5
jmp 0x402ba1
push str.ERROR
call sub.MSVCR71.dll_strlen
push eax
push str.ERROR
push esi
call edi
add esp, 0x10
test eax, eax
jne 0x402be3
push 3
jmp 0x402ba1
push str.IF_SERVER_CLASS
call sub.MSVCR71.dll_strlen
push eax
push str.IF_SERVER_CLASS
push esi
call edi
add esp, 0x10
test eax, eax
jne 0x402c63
push dword [0x408010]
mov edi, dword [sym.imp.MSVCR71.dll_strcspn]
push esi
call edi
add esi, eax
cmp byte [esi], 0
pop ecx
pop ecx
je 0x402c2b
push dword [0x408010]
push esi
call dword [sym.imp.MSVCR71.dll_strspn]
add esi, eax
cmp byte [esi], 0
pop ecx
pop ecx
jne 0x402c49
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x14]
push str.Warning:_missing_server_class_VM_on_line__d_of___s_n
mov eax, dword [sym.imp.MSVCR71.dll__iob]
add eax, 0x40
push eax
call ebx
add esp, 0x10
jmp 0x402c81
push dword [0x408010]
mov dword [esp + 0x24], esi
push esi
call edi
pop ecx
pop ecx
mov byte [eax + esi], 0
push 4
jmp 0x402ba1
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x14]
mov eax, dword [sym.imp.MSVCR71.dll__iob]
add eax, 0x40
push str.Warning:_unknown_VM_type_on_line__d_of___s_n
push eax
call ebx
add esp, 0x10
xor ebp, ebp
cmp byte [0x40803a], 0
je 0x402ca4
lea eax, [esp + 0x148]
push eax
push dword [esp + 0x18]
push str.jvm.cfg__d______s___n
call dword [sym.imp.MSVCR71.dll_printf]
add esp, 0xc
cmp ebp, 0xffffffff
je 0x402d42
mov eax, dword [0x408044]
mov edi, dword [esp + 0x18]
lea esi, [edi + eax]
lea eax, [esp + 0x148]
push eax
call sub.jli.dll_JLI_StringDup
mov dword [esi], eax
mov eax, ebp
dec eax
pop ecx
mov dword [esi + 4], ebp
je 0x402d03
sub eax, 3
jne 0x402d37
push dword [esp + 0x20]
call sub.jli.dll_JLI_StringDup
pop ecx
mov ecx, dword [0x408044]
add ecx, edi
mov dword [ecx + 0xc], eax
cmp byte [0x40803a], 0
je 0x402d37
push eax
push str.VM_IF_SERVER_CLASS
push dword [ecx]
push str.____name:__s__vmType:__s__server_class:__s_n
jmp 0x402d2e
push dword [esp + 0x1c]
call sub.jli.dll_JLI_StringDup
pop ecx
mov ecx, dword [0x408044]
add ecx, edi
mov dword [ecx + 8], eax
cmp byte [0x40803a], 0
je 0x402d37
push eax
push str.VM_ALIASED_TO
push dword [ecx]
push str.____name:__s__vmType:__s__alias:__s_n
call dword [sym.imp.MSVCR71.dll_printf]
add esp, 0x10
inc dword [esp + 0x14]
add edi, 0x10
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
push esi
lea eax, [esp + 0x14c]
push 0x118
push eax
call dword [sym.imp.MSVCR71.dll_fgets]
add esp, 0xc
test eax, eax
jne 0x4029ec
pop ebp
pop ebx
push esi
call dword [sym.imp.MSVCR71.dll_fclose]
cmp byte [0x40803a], 0
pop ecx
mov dword [0x408048], edi
je 0x402da5
call fcn.004032e5
sub eax, dword [esp + 0x20]
sbb edx, dword [esp + 0x24]
push edx
push eax
call fcn.0040332b
push eax
push str._ld_micro_seconds_to_parse_jvm.cfg_n
call dword [sym.imp.MSVCR71.dll_printf]
add esp, 0x10
mov eax, edi
pop edi
pop esi
add esp, 0x250
ret