Function at 0x40f620
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x4a4950
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14
push ebx
push esi
push edi
push 0x5c
lea ecx, [esp + 0x34]
mov dword [esp + 0x2c], 0
call fcn.00488097
inc eax
lea ecx, [esp + 0x30]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.00487eea
lea ecx, [esp + 0xc]
mov byte [esp + 0x28], 1
call fcn.004900a5
lea ecx, [esp + 0x14]
push 0xa
push ecx
lea ecx, [esp + 0x14]
call fcn.0048801f
mov eax, dword [eax]
mov esi, str.plugin.ini
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x40f6ab
test cl, cl
je 0x40f6a7
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x40f6ab
add eax, 2
add esi, 2
test cl, cl
jne 0x40f683
xor eax, eax
jmp 0x40f6b0
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
lea ecx, [esp + 0x14]
sete bl
call fcn.0048fb71
test bl, bl
je 0x40f8ce
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push str.Type
call fcn.0048fbdf
push ecx
lea eax, [esp + 0x38]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
mov byte [esp + 0x34], 2
call fcn.0048f8e6
lea ecx, [esp + 0x1c]
mov byte [esp + 0x30], 1
push ecx
call fcn.0040f530
add esp, 0xc
mov edi, dword [esp + 0x14]
mov bl, 3
mov byte [esp + 0x28], bl
mov esi, str.BUTTON
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40f734
test cl, cl
je 0x40f730
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40f734
add eax, 2
add esi, 2
test cl, cl
jne 0x40f710
xor eax, eax
jmp 0x40f739
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40f775
mov esi, str.M2Plugin_BUTTON
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40f768
test cl, cl
je 0x40f764
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40f768
add eax, 2
add esi, 2
test cl, cl
jne 0x40f744
xor eax, eax
jmp 0x40f76d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40f8c0
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.ModuleType
call fcn.0048fbdf
push ecx
lea eax, [esp + 0x38]
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
mov byte [esp + 0x34], 4
call fcn.0048f8e6
lea ecx, [esp + 0x18]
mov byte [esp + 0x30], bl
push ecx
call fcn.0040f530
add esp, 0xc
mov edi, dword [esp + 0x10]
mov esi, str.SCRIPT
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40f7dc
test cl, cl
je 0x40f7d8
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40f7dc
add eax, 2
add esi, 2
test cl, cl
jne 0x40f7b8
xor eax, eax
jmp 0x40f7e1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40f836
lea ecx, [esp + 0x10]
mov byte [esp + 0x28], bl
call fcn.0048fb71
lea ecx, [esp + 0x14]
mov byte [esp + 0x28], 1
call fcn.0048fb71
lea ecx, [esp + 0xc]
mov byte [esp + 0x28], 0
call fcn.0048fb71
lea ecx, [esp + 0x30]
mov dword [esp + 0x28], 0xffffffff
call fcn.0048fb71
mov eax, 1
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov esi, 0x4d580c
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40f861
test cl, cl
je 0x40f85d
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40f861
add eax, 2
add esi, 2
test cl, cl
jne 0x40f83d
xor eax, eax
jmp 0x40f866
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
mov byte [esp + 0x28], bl
lea ecx, [esp + 0x10]
jne 0x40f8bb
call fcn.0048fb71
lea ecx, [esp + 0x14]
mov byte [esp + 0x28], 1
call fcn.0048fb71
lea ecx, [esp + 0xc]
mov byte [esp + 0x28], 0
call fcn.0048fb71
lea ecx, [esp + 0x30]
mov dword [esp + 0x28], 0xffffffff
call fcn.0048fb71
mov eax, 2
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
add esp, 0x20
ret
call fcn.0048fb71
lea ecx, [esp + 0x14]
mov byte [esp + 0x28], 1
call fcn.0048fb71
lea ecx, [esp + 0xc]
mov byte [esp + 0x28], 0
call fcn.0048fb71
lea ecx, [esp + 0x30]
mov dword [esp + 0x28], 0xffffffff
call fcn.0048fb71
mov ecx, dword [esp + 0x20]
pop edi
pop esi
xor eax, eax
mov dword fs:[0], ecx
pop ebx
add esp, 0x20
ret