Function at 0x409b90
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x50
mov dword [esp + 0x1c], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp + 0x18], eax
mov word [esp + 0x10], 0xc5d7
mov byte [esp + 0x12], 0xda
mov word [esp + 0x13], 0
lea ebx, [esp + 0x10]
mov ebp, 0x6f753dd0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [ebx]
lea eax, [ebp - 0x6f753d00]
and eax, edi
or edi, ebp
not edi
or edi, eax
lea eax, [edi + 0x3231cda]
mov ecx, 0xdcdce325
sub ecx, edi
and ecx, 0xf5d8e7c6
and eax, 0xa271839
and edi, 1
mov edx, edi
xor edx, 1
sub edx, ecx
add edx, eax
mov eax, edx
and eax, edi
xor edx, edi
lea eax, [edx + eax*2]
mov byte [ebx], al
inc ebx
dec ebp
cmp ebp, 0x6f753dcb
jne 0x409bd0
mov dword [esp + 8], 0x1e181c02
mov dword [esp + 0xc], 0x251e
xor eax, eax
nop
nop
nop
nop
mov ecx, eax
add cl, 0xb8
xor cl, byte [esp + eax + 8]
add cl, 0x68
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 8
jne 0x409c30
mov dword [esp + 0x20], 0x681fc5d7
mov dword [esp + 0x24], 0x6f656b6a
mov dword [esp + 0x28], 0x6e162068
mov dword [esp + 0x2c], 0x60676765
mov dword [esp + 0x30], 0x18151f6b
mov dword [esp + 0x34], 0x174e611a
mov dword [esp + 0x38], 0x5211151d
mov dword [esp + 0x3c], 0x2120004
mov dword [esp + 0x40], 0x1e085b69
mov dword [esp + 0x44], 0x5b7d040b
mov byte [esp + 0x48], 0xbc
mov dword [esp + 0x49], 0
mov word [esp + 0x4d], 0
xor edi, edi
xor ebp, ebp
nop
nop
movzx ecx, byte [esp + ebp + 0x20]
mov edx, ebp
xor edx, 0x2bc8da51
mov eax, edi
and eax, 0x5c
sub eax, edx
mov ebx, eax
and ebx, ecx
mov esi, ebx
or esi, 0xfd
inc esi
mov edx, ebx
and edx, 0xfffffffd
imul edx, esi
mov esi, ebx
and esi, 2
or ebx, 2
imul ebx, esi
sub edx, ebx
add eax, ecx
add eax, edx
add al, 0x95
mov byte [esp + ebp + 0x20], al
inc ebp
add edi, 2
cmp ebp, 0x2f
jne 0x409cb0
mov ebp, dword [esp + 0x64]
add ebp, dword [esp + 0x18]
mov word [esp], 0x8083
mov byte [esp + 2], 0x7e
mov dword [esp + 3], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x15
xor al, byte [esp + ecx]
add al, 0x97
mov byte [esp + ecx], al
mov eax, ecx
and eax, 1
xor ecx, 1
lea ecx, [ecx + eax*2]
cmp ecx, 7
jb 0x409d20
movzx ecx, byte [esp]
mov edi, ebp
test cl, cl
mov edx, dword [esp + 0x6c]
je 0x409d5b
lea ebx, [esp + 1]
mov edi, ebp
mov byte [edi], cl
inc edi
movzx ecx, byte [ebx]
inc ebx
test cl, cl
jne 0x409d50
mov byte [edi], 0
mov eax, dword [esp + 0x1c]
movzx ecx, byte [eax + 0x60]
test cl, cl
mov esi, dword [esp + 0x68]
je 0x409d8b
lea ebx, [eax + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [ebx]
inc ebx
test cl, cl
jne 0x409d80
mov byte [edi], 0
movzx ecx, byte [esp + 0x20]
test cl, cl
je 0x409dab
lea ebx, [esp + 0x21]
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [ebx]
inc ebx
test cl, cl
jne 0x409da0
mov byte [edi], 0
movzx ecx, byte [esi]
test cl, cl
je 0x409dcb
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409dc0
mov byte [edi], 0
movzx ecx, byte [esp + 8]
test cl, cl
je 0x409deb
lea esi, [esp + 9]
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409de0
mov byte [edi], 0
movzx ecx, byte [edx]
test cl, cl
je 0x409e0b
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x409e00
mov byte [edi], 0
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x409e2b
lea edx, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x409e20
mov byte [edi], 0
sub edi, ebp
add dword [eax + 0x80], edi
add esp, 0x50
pop esi
pop edi
pop ebx
pop ebp
ret 0xc