Function at 0x4092f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x40
mov dword [esp + 0x10], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp + 0xc], eax
mov word [esp + 3], 0xeeee
mov byte [esp + 5], 0xd5
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x8b
xor cl, byte [esp + eax + 3]
add cl, 0xa8
mov byte [esp + eax + 3], cl
inc eax
cmp eax, 3
jne 0x409320
mov dword [esp + 6], 0xe080c22
mov word [esp + 0xa], 0x50e
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor byte [esp + eax + 6], al
inc eax
cmp eax, 6
jne 0x409350
mov dword [esp + 0x17], 0xe63b5b3
mov dword [esp + 0x1b], 0xb01370c
mov dword [esp + 0x1f], 0x6c4a32
mov dword [esp + 0x23], 0x3e033b39
mov dword [esp + 0x27], 0x3e393b07
mov dword [esp + 0x2b], 0x3374493c
mov dword [esp + 0x2f], 0x74350539
mov dword [esp + 0x33], 0x3c083a3e
mov dword [esp + 0x37], 0x202e7f45
mov dword [esp + 0x3b], 0x6759262f
mov byte [esp + 0x3f], 0x86
xor ebx, ebx
xor ebp, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ebp + 0x17]
mov ecx, ebx
and ecx, 0x1c
mov eax, ebp
xor eax, 0x50f1f4ce
add eax, ecx
lea ecx, [eax + eax]
not ecx
add ecx, eax
mov edx, eax
xor edx, 0x9ef068af
mov esi, eax
or esi, 0x40019550
and esi, edx
xor edi, 0x9ef068af
and eax, 0xe0008af
xor eax, 0x8e0008af
and eax, ecx
or eax, esi
mov ecx, edi
and ecx, eax
add eax, edi
add ecx, ecx
sub eax, ecx
add al, 0x90
mov byte [esp + ebp + 0x17], al
inc ebp
add ebx, 2
cmp ebp, 0x29
jne 0x4093c0
mov ebp, dword [esp + 0x54]
add ebp, dword [esp + 0xc]
mov word [esp], 0x4a4b
mov byte [esp + 2], 0x28
xor edi, edi
nop
nop
movzx eax, byte [esp + edi]
lea ecx, [edi - 0x659d2e6a]
and ecx, eax
add ecx, ecx
neg ecx
add ecx, edi
add ecx, 0x9a62d196
add ecx, eax
lea eax, [ecx + ecx]
and eax, 0x59d2e69e
xor ecx, 0x2ce9734f
mov edx, eax
and edx, ecx
xor ecx, eax
lea eax, [ecx + edx*2]
inc al
mov byte [esp + edi], al
mov eax, edi
and eax, 1
xor edi, 1
lea edi, [edi + eax*2]
cmp edi, 3
jb 0x409430
movzx eax, byte [esp]
mov edi, ebp
test al, al
je 0x40949b
lea ebx, [esp + 1]
mov edi, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x409490
mov byte [edi], 0
mov ecx, dword [esp + 0x10]
movzx eax, byte [ecx + 0x60]
test al, al
mov esi, dword [esp + 0x58]
je 0x4094cd
lea ebx, [ecx + 0x61]
mov edx, dword [esp + 0x5c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x4094c0
jmp 0x4094d1
mov edx, dword [esp + 0x5c]
mov byte [edi], 0
movzx eax, byte [esp + 0x17]
test al, al
je 0x4094fb
lea ebx, [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x4094f0
mov byte [edi], 0
movzx eax, byte [esi]
test al, al
je 0x40951b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [esi]
inc esi
test al, al
jne 0x409510
mov byte [edi], 0
movzx eax, byte [esp + 6]
test al, al
je 0x40953b
lea esi, [esp + 7]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [esi]
inc esi
test al, al
jne 0x409530
mov byte [edi], 0
movzx eax, byte [edx]
test al, al
je 0x40955b
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x409550
mov byte [edi], 0
movzx eax, byte [esp + 3]
test al, al
je 0x40957b
lea edx, [esp + 4]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x409570
mov byte [edi], 0
mov eax, edi
xor eax, ebp
not ebp
and ebp, edi
add ebp, ebp
sub ebp, eax
add dword [ecx + 0x80], ebp
add esp, 0x40
pop esi
pop edi
pop ebx
pop ebp
ret 0xc