Function at 0x409338
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov edx, dword [ebp + 8]
mov eax, 1
cmp edx, 1
jg 0x409370
call fcn.00401028
push 0
call dword [sym.imp.MSVCR71.dll_exit]
pop ecx
mov eax, dword [0x44e880]
test eax, eax
jne 0x40936c
mov dword [0x45fee0], 1
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 4]
mov dword [ebp - 4], ebx
mov ebx, eax
mov dword [ebp - 8], esi
mov esi, edx
mov dword [ebp - 0xc], edi
mov edi, dword [ebp + 0xc]
test ecx, ecx
je 0x409386
push ecx
call dword [sym.imp.MSVCR71.dll_wcslen]
pop ecx
test eax, eax
jne 0x40939b
mov ecx, dword [edi + ebx*4]
jmp 0x409386
push 0x4440dc
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll_wcscmp]
add esp, 8
test eax, eax
jne 0x4093b5
mov ecx, dword [edi + ebx*4]
jmp 0x409386
push 0x446c40
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x4093e3
mov ecx, 1
mov dword [0x468704], ecx
mov dword [0x44e880], ecx
add ebx, 1
jmp 0x4094f9
push str.HARDWARE
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40940a
mov dword [0x468708], 1
add ebx, 1
jmp 0x4094f9
push str.OS_SOFTWARE
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x409431
mov dword [0x46870c], 1
add ebx, 1
jmp 0x4094f9
push str.VENDOR_SOFTWARE
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x409458
mov dword [0x468710], 1
add ebx, 1
jmp 0x4094f9
push 0x4486ac
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x409495
mov ecx, 1
mov dword [0x467584], ecx
mov dword [0x468704], ecx
add ebx, 1
mov dword [0x468708], ecx
mov dword [0x46870c], ecx
mov dword [0x468710], ecx
jmp 0x4094f9
mov eax, dword [edi + ebx*4]
movzx ecx, word [eax]
cmp ecx, 0x2d
je 0x409513
push eax
call fcn.00402674
pop ecx
test eax, 0x4000
je 0x4094d2
push 0x800
push dword [edi + ebx*4]
push 0x4675a0
call dword [sym.imp.MSVCR71.dll_wcsncpy]
add esp, 0xc
xor ecx, ecx
mov word [0x46859e], cx
add ebx, 1
jmp 0x4094f9
push dword [edi + ebx*4]
push str.Error
push str._s:_invalid_component__s_n
push dword [0x4497e0]
call dword [sym.imp.MSVCR71.dll_fwprintf]
push 1
call dword [sym.imp.MSVCR71.dll_exit]
add esp, 0x14
add ebx, 1
cmp ebx, esi
jge 0x409505
mov ecx, dword [edi + ebx*4]
jmp 0x409386
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
jmp 0x409359
push eax
call dword [sym.imp.MSVCR71.dll_wcslen]
push eax
push str._LOADER
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll__wcsnicmp]
add esp, 0x10
test eax, eax
jne 0x40953f
mov dword [0x44e880], 1
add ebx, 1
jmp 0x4094f9
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll_wcslen]
push eax
push str._EXPORT
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll__wcsnicmp]
add esp, 0x10
test eax, eax
jne 0x40956d
mov dword [0x467580], 1
add ebx, 1
jmp 0x4094f9
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll_wcslen]
push eax
push str._INDENT
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll__wcsnicmp]
add esp, 0x10
test eax, eax
jne 0x40959e
mov dword [0x468700], 1
add ebx, 1
jmp 0x4094f9
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll_wcslen]
push eax
push str._MAPPED
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll__wcsnicmp]
add esp, 0x10
test eax, eax
jne 0x4095cf
mov dword [0x45fee0], 1
add ebx, 1
jmp 0x4094f9
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll_wcslen]
push eax
push str._HELP
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll__wcsnicmp]
add esp, 0x10
test eax, eax
jne 0x409604
call fcn.00401028
push 0
call dword [sym.imp.MSVCR71.dll_exit]
pop ecx
add ebx, 1
jmp 0x4094f9
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll_wcslen]
push eax
push str._VERSION
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll__wcsnicmp]
add esp, 0x10
test eax, eax
jne 0x409639
call fcn.00401058
push 0
call dword [sym.imp.MSVCR71.dll_exit]
pop ecx
add ebx, 1
jmp 0x4094f9
push 0x4485ac
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x409699
add ebx, 1
cmp esi, ebx
jle 0x40966e
push dword [edi + ebx*4]
push 0x4686a0
call dword [sym.imp.MSVCR71.dll_wcscpy]
add esp, 8
add ebx, 1
jmp 0x4094f9
push 0x4485ac
push str.Error
push str._s:_missing_argument_for__s_n
push dword [0x4497e0]
call dword [sym.imp.MSVCR71.dll_fwprintf]
push 1
call dword [sym.imp.MSVCR71.dll_exit]
add esp, 0x14
jmp 0x4094f9
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll_wcslen]
push eax
push 0x4485b8
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll__wcsnicmp]
add esp, 0x10
test eax, eax
jne 0x40970d
add ebx, 1
cmp esi, ebx
jle 0x4096e2
push 0x4485b4
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll__wfopen]
add esp, 8
mov dword [0x44e8d8], eax
mov dword [0x4497e0], eax
add ebx, 1
jmp 0x4094f9
push 0x4485b8
push str.Error
push str._s:_missing_argument_for__s_n
push dword [0x4497e0]
call dword [sym.imp.MSVCR71.dll_fwprintf]
push 1
call dword [sym.imp.MSVCR71.dll_exit]
add esp, 0x14
jmp 0x4094f9
push 2
push 0x44860c
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll__wcsnicmp]
add esp, 0xc
test eax, eax
je 0x40973b
push 6
push str._DEBUG
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x409791
push 6
push str._DEBUG
push dword [edi + ebx*4]
call dword [sym.imp.MSVCR71.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x409759
mov eax, 6
jmp 0x40975e
mov eax, 2
add eax, eax
add eax, dword [edi + ebx*4]
movzx ecx, word [eax]
test ecx, ecx
jne 0x40977c
mov dword [0x44c3a8], 1
add ebx, 1
jmp 0x4094f9
push eax
call dword [sym.imp.MSVCR71.dll__wtoi]
pop ecx
mov dword [0x44c3a8], eax
add ebx, 1
jmp 0x4094f9
push dword [edi + ebx*4]
push str.Error
push str._s:_invalid_option__s_n
push dword [0x4497e0]
call dword [sym.imp.MSVCR71.dll_fwprintf]
push 1
call dword [sym.imp.MSVCR71.dll_exit]
add esp, 0x14
add ebx, 1
jmp 0x4094f9