Function at 0x4097c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x78
mov dword [esp + 0x24], ecx
mov eax, dword [ecx + 0x60]
mov dword [esp + 0x20], eax
mov word [esp], 0x1b19
mov byte [esp + 2], 0xa
mov dword [esp + 3], 0
mov dword [esp + 7], 0
mov dword [esp + 0xb], 0
mov byte [esp + 0xf], 0
mov ebx, 0x17e91b2b
mov esi, 0xe816e4d4
mov ecx, 0x6816e4d5
nop
nop
movzx eax, byte [esp + ebx - 0x17e91b2b]
lea edx, [ebx - 1]
xor edx, eax
or edx, ecx
lea edi, [edx + edx]
mov dword [esp + 0x28], edi
mov edi, esi
sub edi, dword [esp + 0x28]
lea edx, [ebx + edx*2]
and edx, eax
not eax
and eax, edi
sub edx, eax
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x30]
lea eax, [edx + edx]
mov edi, eax
and edi, 0x4c
sub edi, edx
and eax, 0xb2
add eax, edi
add al, 0xda
mov byte [esp + ebx - 0x17e91b2b], al
inc ebx
dec esi
dec ecx
cmp ebx, 0x17e91b3b
jne 0x409810
mov dword [esp + 0x10], 0x9e9c9862
mov word [esp + 0x14], 0x899e
mov dword [esp + 0x16], 0
mov dword [esp + 0x1a], 0
mov byte [esp + 0x1e], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 0x10]
mov eax, ecx
or eax, 0x18f2266a
mov edx, ecx
and edx, 5
xor edx, 0xe70dd995
lea esi, [edx + edx]
not esi
add esi, edx
and esi, eax
mov eax, ecx
and eax, 0xa
add eax, esi
xor eax, edi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0x1a
mov byte [esp + ecx + 0x10], al
inc ecx
cmp ecx, 0xf
jne 0x409890
mov dword [esp + 0x30], 0xb6b88c8d
mov dword [esp + 0x34], 0xaaaa989c
mov dword [esp + 0x38], 0xafd2a89d
mov dword [esp + 0x3c], 0xa2a7aedb
mov dword [esp + 0x40], 0x9aa7dbda
mov dword [esp + 0x44], 0xe0b57f41
mov dword [esp + 0x48], 0xe59fede6
mov dword [esp + 0x4c], 0x96b2a8e0
mov dword [esp + 0x50], 0xe8ede9eb
mov dword [esp + 0x54], 0xf08ff98d
mov dword [esp + 0x58], 0x8d42bbf6
mov dword [esp + 0x5c], 0xbafbfffb
mov dword [esp + 0x60], 0x8af68884
mov dword [esp + 0x64], 0xf68035cf
mov dword [esp + 0x68], 0x31d7fc85
mov byte [esp + 0x6c], 0x1c
mov word [esp + 0x6d], 0
mov byte [esp + 0x6f], 0
xor ecx, ecx
xor edi, edi
nop
nop
nop
nop
nop
nop
mov edx, edi
and edx, 0xc
mov eax, edi
or eax, 0x5088c60c
mov esi, ecx
and esi, 0x18
xor edx, 0x8f3157dc
add esi, eax
lea eax, [esi + edx]
add edx, esi
add edx, 0x24
movzx esi, byte [esp + edi + 0x30]
and edx, esi
add eax, esi
add edx, edx
sub eax, edx
add eax, 0x70cea824
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
add al, 0xac
mov byte [esp + edi + 0x30], al
inc edi
add ecx, 2
cmp edi, 0x40
jne 0x409960
mov eax, dword [ebp + 8]
add eax, dword [esp + 0x20]
movzx ecx, byte [esp + 0x30]
mov edi, eax
test cl, cl
je 0x4099db
lea ebx, [esp + 0x31]
mov edi, eax
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 0x4099d0
mov byte [edi], 0
mov esi, dword [ebp + 0xc]
movzx ecx, byte [esi]
test cl, cl
mov edx, dword [ebp + 0x10]
je 0x4099fb
inc esi
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x4099f0
mov byte [edi], 0
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x409a1b
lea esi, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409a10
mov byte [edi], 0
movzx ecx, byte [edx]
test cl, cl
je 0x409a3b
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 0x409a30
mov byte [edi], 0
movzx ecx, byte [esp]
test cl, cl
je 0x409a5b
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x409a50
mov byte [edi], 0
sub edi, eax
mov eax, dword [esp + 0x24]
add dword [eax + 0x60], edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc