Function at 0x4228f0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x34
push ebx
push esi
mov esi, dword [ebp + 0x14]
push edi
mov edi, dword [ebp + 0xc]
mov ebx, edi
mov eax, esi
mov dword [esp + 0x34], 1
call fcn.0041fec0
mov ecx, dword [eax]
test ecx, ecx
mov dword [esp + 0x30], eax
jne 0x422982
cmp byte [edi], 0x6e
jne 0x42294a
cmp byte [edi + 1], 0x6f
jne 0x42294a
lea ebx, [edi + 2]
mov eax, esi
call fcn.0041fec0
mov ecx, dword [eax]
test ecx, ecx
mov dword [esp + 0x30], eax
je 0x42294e
test byte [eax + 4], 2
je 0x42294a
mov dword [esp + 0x34], 0
test ecx, ecx
jne 0x422982
mov ebx, str.default
mov eax, esi
call fcn.0041fec0
cmp dword [eax], 0
mov dword [esp + 0x30], eax
jne 0x422982
push edi
push str.Unrecognized_option__s_n
push 0x10
push 0
call dword [0x4df760]
add esp, 0x10
mov eax, 0xffffffea
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 4]
test al, 1
mov ebx, dword [ebp + 0x10]
je 0x42299c
test ebx, ebx
jne 0x42299c
push edi
push 0x4aec58
jmp 0x422969
test eax, 0xc000
mov esi, dword [ecx + 8]
je 0x4229a9
add esi, dword [ebp + 8]
test eax, 0x8000
je 0x422a0b
push 0x3a
push edi
call fcn.00477050
mov ecx, dword [esi]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 4]
lea ebx, [esi + 4]
add eax, 1
push eax
push ebx
push 0x10
push ecx
call fcn.004223a0
mov dword [esi], eax
mov eax, dword [esp + 0x50]
add esp, 0x18
test eax, eax
je 0x4229e3
add eax, 1
jmp 0x4229e8
mov eax, 0x4ab9d6
push eax
call dword [0x4df7fc]
mov edx, dword [ebx]
mov ecx, dword [esi]
shl edx, 4
mov dword [edx + ecx - 0x10], eax
mov edx, dword [ebx]
mov eax, dword [esi]
mov ebx, dword [ebp + 0x10]
add esp, 4
shl edx, 4
lea esi, [edx + eax - 8]
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 4]
test al, 8
je 0x422a25
push ebx
call dword [0x4df7fc]
add esp, 4
jmp 0x422ab4
test al, 2
je 0x422a34
mov ecx, dword [esp + 0x34]
mov dword [esi], ecx
jmp 0x422ab6
test al, al
jns 0x422a64
fld qword [0x4aec50]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [0x4aec48]
fstp qword [esp]
push 0x400
push ebx
push edi
call fcn.0041fc20
add esp, 0x1c
call fcn.00476d80
jmp 0x422ab4
test eax, 0x400
je 0x422acf
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x3c], 0x7fffffff
fild qword [esp + 0x38]
sub esp, 0x10
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0x80000000
fstp qword [esp + 8]
fild qword [esp + 0x48]
fstp qword [esp]
push 0x400
push ebx
push edi
call fcn.0041fc20
add esp, 0x1c
call fcn.00476db6
mov dword [esi + 4], edx
mov dword [esi], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 4]
test eax, 0x800
je 0x422b9a
push 0
call fcn.00476cf0
test eax, 0x10000
je 0x422ae4
push 1
push ebx
push edi
call fcn.0041fd00
add esp, 0xc
jmp 0x422ab1
test eax, 0x100
je 0x422b1f
mov eax, 0x7f800000
sub esp, 0x10
mov dword [esp + 0x48], eax
fld dword [esp + 0x48]
mov dword [esp + 0x44], eax
fstp qword [esp + 8]
fld dword [esp + 0x44]
fchs
fstp qword [esp]
push 0x100
push ebx
push edi
call fcn.0041fc20
fstp dword [esi]
add esp, 0x1c
jmp 0x422ab6
test eax, 0x20000
je 0x422b5d
mov eax, 0x7f800000
sub esp, 0x10
mov dword [esp + 0x48], eax
fld dword [esp + 0x48]
mov dword [esp + 0x44], eax
fstp qword [esp + 8]
fld dword [esp + 0x44]
fchs
fstp qword [esp]
push 0x20000
push ebx
push edi
call fcn.0041fc20
fstp qword [esi]
add esp, 0x1c
jmp 0x422ab6
mov eax, dword [ecx + 8]
test eax, eax
je 0x422ab6
mov edx, dword [ebp + 8]
push ebx
push edi
push edx
call eax
mov esi, eax
add esp, 0xc
test esi, esi
jge 0x422ab6
push edi
push ebx
push str.Failed_to_set_value__s_for_option__s_n
push 0x10
push 0
call dword [0x4df760]
add esp, 0x14
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
and eax, 1
pop ebx
mov esp, ebp
pop ebp
ret