Function at 0x66791845
Capabilities:
Packed with generic packer

Disassembly:
mov eax, 0x66784fa4
call fcn.66766184
sub esp, 0x74
push ebx
push esi
push edi
mov dword [ebp - 0x1c], ecx
and dword [ebp - 4], 0
and dword [ebp - 0x3c], 0
lea ecx, [ebp + 0x10]
call fcn.6672d629
cmp eax, 2
jne 0x66791a32
lea ecx, [ebp - 0x80]
call fcn.66734bf6
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 1
call fcn.66734c97
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 2
call fcn.667364f6
mov ebx, 0xfb03422e
mov byte [ebp - 0xd], al
mov eax, dword [ebp + 0xc]
mov edi, 0x6a9c77b6
push ebx
mov esi, 0xae8f8905
push edi
push esi
lea ecx, [eax + 0x10]
push eax
push 0
mov dword [ebp - 0x14], ecx
call fcn.66735e04
cmp al, byte [ebp - 0xd]
je 0x667918e5
lea ecx, [ebp - 0x60]
call fcn.66736552
mov ecx, dword [ebp - 0x14]
push ebx
push edi
push esi
push dword [ebp + 0xc]
mov dword [ebp - 0x38], eax
push 0
call fcn.66735e04
movzx ax, al
cmp ax, word [ebp - 0x38]
jne 0x66791a1a
mov eax, dword [ebp + 0x38]
lea ecx, [eax + 0xa4]
call fcn.667298cb
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x38]
lea ecx, [eax + 0x2c]
call fcn.66722e2d
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 0x38]
lea ecx, [eax + 0x7c]
call fcn.66729858
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0x38]
lea ecx, [eax + 0x54]
call fcn.667297dc
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x38]
lea ecx, [eax + 0xcc]
mov dword [ebp - 0x38], ecx
call fcn.66722fa1
lea eax, [ebp - 0x24]
mov ecx, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x28]
push eax
push ebx
push edi
push esi
push dword [ebp + 0xc]
push 1
call fcn.66735e04
mov ecx, dword [ebp - 0x1c]
push eax
call fcn.66790563
cmp ax, 1
mov dword [ebp - 0x3c], eax
jne 0x66791a1a
mov eax, dword [ebp - 0x2c]
and byte [ebp + 0x3b], 0
lea ecx, [ebp - 0x80]
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
call fcn.667364f6
mov ecx, dword [ebp - 0x14]
push ebx
push edi
push esi
push dword [ebp + 0xc]
mov byte [ebp - 0xd], al
push 0
call fcn.66735e04
cmp al, byte [ebp - 0xd]
je 0x667919d3
lea ecx, [ebp - 0x60]
call fcn.66736552
mov ecx, dword [ebp - 0x14]
push ebx
push edi
push esi
push dword [ebp + 0xc]
mov dword [ebp - 0x40], eax
push 0
call fcn.66735e04
movzx ax, al
cmp ax, word [ebp - 0x40]
jne 0x667919d3
mov eax, 0xff
and dword [ebp - 0x18], eax
and dword [ebp - 0x1c], eax
pushal
mov eax, 0
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
and ecx, edx
lahf
mov byte [ebp + 0x3b], ah
popal
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 8]
push 0x938a275e
mov dword [eax], 0xf5148280
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x38]
push 0xfffff700
call fcn.66733cee
mov al, byte [ebp + 0x3b]
mov ecx, dword [ebp - 0x38]
and eax, 0xfe
push eax
call fcn.66733d4e
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 1
call fcn.66734cf1
and byte [ebp - 4], 0
lea ecx, [ebp - 0x80]
call fcn.66734c50
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x10]
mov dword [ebp + 0x10], 0x66796068
call fcn.6672c282
mov ecx, dword [ebp - 0xc]
mov ax, word [ebp - 0x3c]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 0x38