Function at 0x100173a
Capabilities:
Terminate process

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x304
push ebx
push esi
mov esi, ecx
push edi
lea ecx, [ebp - 0x28c]
call dword [sym.imp.ulib.dll_public:_void___thiscall_ARGUMENT_LEXEMIZER::constructor_void_]
mov edi, dword [sym.imp.ulib.dll_public:_void___thiscall_ARRAY::constructor_void_]
lea ecx, [ebp + 0x48]
call edi
lea ecx, [ebp + 0x60]
call edi
mov ebx, dword [sym.imp.ulib.dll_public:_void___thiscall_STRING_ARGUMENT::constructor_void_]
lea ecx, [ebp - 0x190]
call ebx
mov edi, dword [sym.imp.ulib.dll_public:_void___thiscall_FLAG_ARGUMENT::constructor_void_]
lea ecx, [ebp - 0x134]
call edi
lea ecx, [ebp - 0x164]
call edi
lea ecx, [ebp - 0xa4]
call edi
lea ecx, [ebp - 0x74]
call edi
lea ecx, [ebp - 0x104]
call edi
lea ecx, [ebp - 0x44]
call edi
lea ecx, [ebp - 0xd4]
call edi
lea ecx, [ebp + 0x18]
call edi
lea ecx, [ebp - 0x14]
call ebx
xor edi, edi
inc edi
push edi
push 0x7531
push 0x7530
mov ecx, esi
call dword [sym.imp.ulib.dll_public:_unsigned_char___thiscall_PROGRAM::Initialize_unsigned_long_int__unsigned_long_int__unsigned_long_int_]
mov dword [esi + 0x168], edi
call dword [sym.imp.ulib.dll_public:_static_unsigned_char___stdcall_SYSTEM::IsCorrectVersion_void_]
test al, al
jne 0x10017e9
mov eax, dword [esi]
push edi
push 0x2ee1
jmp 0x1001c03
push 0x19
push 0x32
lea ecx, [ebp + 0x60]
call dword [sym.imp.ulib.dll_public:_unsigned_char___thiscall_ARRAY::Initialize_unsigned_long_int__unsigned_long_int_]
test al, al
je 0x1001bfb
mov ebx, 0x10011ec
push ebx
lea ecx, [ebp - 0x190]
call dword [sym.imp.ulib.dll_public:_unsigned_char___thiscall_STRING_ARGUMENT::Initialize_char__]
test al, al
je 0x1001bfb
mov edi, dword [sym.imp.ulib.dll_public:_unsigned_char___thiscall_FLAG_ARGUMENT::Initialize_char__]
push 0x10011e8
lea ecx, [ebp - 0x134]
call edi
test al, al
je 0x1001bf8
push 0x10011e4
lea ecx, [ebp - 0x164]
call edi
test al, al
je 0x1001bf8
push 0x10011e0
lea ecx, [ebp - 0xa4]
call edi
test al, al
je 0x1001bf8
push 0x10011dc
lea ecx, [ebp - 0x74]
call edi
test al, al
je 0x1001bf8
push 0x10011d0
lea ecx, [ebp - 0x104]
call edi
test al, al
je 0x1001bf8
push 0x10011c8
lea ecx, [ebp - 0x44]
call edi
test al, al
je 0x1001bf8
push 0x10011c4
lea ecx, [ebp - 0xd4]
call edi
test al, al
je 0x1001bf8
push 0x10011c0
lea ecx, [ebp + 0x18]
call edi
test al, al
je 0x1001bf8
push 0x10011bc
lea ecx, [ebp - 0x14]
call dword [sym.imp.ulib.dll_public:_unsigned_char___thiscall_STRING_ARGUMENT::Initialize_char__]
test al, al
je 0x1001bf8
push 1
push 0
lea ecx, [esi + 0xa8]
push ebx
call dword [sym.imp.ulib.dll_public:_unsigned_char___thiscall_MULTIPLE_PATH_ARGUMENT::Initialize_char___unsigned_char__unsigned_char_]
test al, al
je 0x1001bf8
mov edi, dword [sym.imp.ulib.dll_public_virtual:_unsigned_char___thiscall_ARRAY::Put_class_OBJECT__]
lea eax, [ebp - 0x190]
push eax
lea ecx, [ebp + 0x60]
call edi
test al, al
je 0x10019b3
lea eax, [ebp - 0x134]
push eax
lea ecx, [ebp + 0x60]
call edi
test al, al
je 0x10019b3
lea eax, [ebp - 0x164]
push eax
lea ecx, [ebp + 0x60]
call edi
test al, al
je 0x10019b3
lea eax, [ebp - 0xa4]
push eax
lea ecx, [ebp + 0x60]
call edi
test al, al
je 0x10019b3
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp + 0x60]
call edi
test al, al
je 0x10019b3
lea eax, [ebp - 0x104]
push eax
lea ecx, [ebp + 0x60]
call edi
test al, al
je 0x10019b3
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp + 0x60]
call edi
test al, al
je 0x10019b3
lea eax, [ebp - 0xd4]
push eax
lea ecx, [ebp + 0x60]
call edi
test al, al
je 0x10019b3
lea eax, [ebp + 0x18]
push eax
lea ecx, [ebp + 0x60]
call edi
test al, al
je 0x10019b3
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp + 0x60]
call edi
test al, al
je 0x10019b3
lea eax, [esi + 0xa8]
push eax
lea ecx, [ebp + 0x60]
call edi
test al, al
je 0x10019b3
push 0x19
push 0x32
lea ecx, [ebp + 0x48]
call dword [sym.imp.ulib.dll_public:_unsigned_char___thiscall_ARRAY::Initialize_unsigned_long_int__unsigned_long_int_]
test al, al
jne 0x10019bc
mov eax, dword [esi]
push 1
jmp 0x1001bfe
lea eax, [ebp + 0x48]
push eax
lea ecx, [ebp - 0x28c]
call dword [sym.imp.ulib.dll_public:_unsigned_char___thiscall_ARGUMENT_LEXEMIZER::Initialize_class_ARRAY__]
test al, al
je 0x10019b3
push 0x10011b8
lea ecx, [ebp - 0x28c]
call dword [sym.imp.ulib.dll_public:_void___thiscall_ARGUMENT_LEXEMIZER::PutSwitches_char_const__]
mov edi, dword [sym.imp.ulib.dll_public:_unsigned_char___thiscall_WSTRING::Initialize_char_const___unsigned_long_int_]
push 0xffffffffffffffff
mov ebx, 0x10011b4
push ebx
lea ecx, [ebp - 0x228]
call edi
push 0xffffffffffffffff
push ebx
lea ecx, [ebp - 0x1f8]
call edi
push 0x10011b0
lea ecx, [ebp - 0x28c]
call dword [sym.imp.ulib.dll_public:_void___thiscall_ARGUMENT_LEXEMIZER::PutSeparators_char_const__]
xor edi, edi
push edi
lea ecx, [ebp - 0x28c]
call dword [sym.imp.ulib.dll_public:_void___thiscall_ARGUMENT_LEXEMIZER::SetCaseSensitive_unsigned_char_]
push edi
lea ecx, [ebp - 0x28c]
call dword [sym.imp.ulib.dll_public:_unsigned_char___thiscall_ARGUMENT_LEXEMIZER::PrepareToParse_class_WSTRING__]
test al, al
jne 0x1001a41
mov eax, dword [esi]
push 1
push 0x2ee3
jmp 0x1001c03
lea eax, [ebp + 0x60]
push eax
lea ecx, [ebp - 0x28c]
call dword [sym.imp.ulib.dll_public:_unsigned_char___thiscall_ARGUMENT_LEXEMIZER::DoParsing_class_ARRAY__]
test al, al
jne 0x1001a75
cmp byte [ebp + 0x44], 0
mov eax, dword [esi]
mov ecx, esi
push 1
je 0x1001a6b
push 0x2ee2
jmp 0x1001c05
push 0x2ee3
jmp 0x1001c05
cmp byte [esi + 0xe1], 0
je 0x1001aa1
mov al, byte [esi + 0xe1]
neg al
lea ecx, [esi + 0xe4]
sbb eax, eax
and eax, ecx
push eax
push 1
push 2
push 0x2ee6
mov ecx, esi
call fcn.010012c8
cmp byte [ebp + 0x44], 0
je 0x1001ab5
mov eax, dword [esi]
push 1
push 0x2ee2
jmp 0x1001c03
cmp byte [ebp - 0xa8], 0
je 0x1001ad1
mov eax, dword [esi]
push edi
push 0x2ee4
mov ecx, esi
call dword [eax + 0xc]
push edi
jmp 0x1001c0a
lea ecx, [ebp - 0x14]
call dword [sym.imp.ulib.dll_public:_unsigned_char___thiscall_ARGUMENT::IsValueSet_void_]
test al, al
je 0x1001a33
push 0xffffffffffffffff
push edi
push dword [ebp + 0x14]
lea ecx, [esi + 0x90]
call dword [sym.imp.ulib.dll_public:_unsigned_char___thiscall_WSTRING::Initialize_class_WSTRING_const___unsigned_long_int__unsigned_long_int_]
cmp byte [ebp - 0x108], 0
sete al
cmp byte [ebp - 0x138], 0
mov byte [esi + 0x88], al
sete al
cmp byte [ebp - 0x78], 0
mov byte [esi + 0x89], al
sete al
cmp byte [ebp - 0xd8], 0
mov byte [esi + 0x8a], al
mov al, byte [ebp - 0x48]
mov byte [esi + 0x8b], al
jne 0x1001b3d
cmp byte [ebp - 0x18], 0
jne 0x1001b3d
mov al, 1
jmp 0x1001b3f
xor al, al
mov ebx, dword [sym.imp.ulib.dll_public_virtual:_void___thiscall_STRING_ARGUMENT::destructor_void_]
lea ecx, [ebp - 0x14]
mov byte [esi + 0x8c], al
call ebx
mov esi, dword [sym.imp.ulib.dll_public_virtual:_void___thiscall_DSTRING::destructor_void_]
lea ecx, [ebp + 0x28]
call esi
mov edi, dword [sym.imp.ulib.dll_public_virtual:_void___thiscall_OBJECT::destructor_void_]
lea ecx, [ebp + 0x18]
call edi
lea ecx, [ebp - 0xc4]
call esi
lea ecx, [ebp - 0xd4]
call edi
lea ecx, [ebp - 0x34]
call esi
lea ecx, [ebp - 0x44]
call edi
lea ecx, [ebp - 0xf4]
call esi
lea ecx, [ebp - 0x104]
call edi
lea ecx, [ebp - 0x64]
call esi
lea ecx, [ebp - 0x74]
call edi
lea ecx, [ebp - 0x94]
call esi
lea ecx, [ebp - 0xa4]
call edi
lea ecx, [ebp - 0x154]
call esi
lea ecx, [ebp - 0x164]
call edi
lea ecx, [ebp - 0x124]
call esi
lea ecx, [ebp - 0x134]
call edi
lea ecx, [ebp - 0x190]
call ebx
mov esi, dword [sym.imp.ulib.dll_public_virtual:_void___thiscall_ARRAY::destructor_void_]
lea ecx, [ebp + 0x60]
call esi
lea ecx, [ebp + 0x48]
call esi
lea ecx, [ebp - 0x28c]
call dword [sym.imp.ulib.dll_public_virtual:_void___thiscall_ARGUMENT_LEXEMIZER::destructor_void_]
pop edi
pop esi
mov al, 1
pop ebx
add ebp, 0x78
leave
ret
xor edi, edi
inc edi
mov eax, dword [esi]
push edi
push 0x2eec
mov ecx, esi
call dword [eax + 0xc]
push 2
call dword [sym.imp.msvcrt.dll_exit]
int3