Function at 0x408f60
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x44
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp + 0x10], eax
mov word [esp + 3], 0xd0b
mov byte [esp + 5], 8
mov eax, 0xba7830b6
mov edi, 0x49
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x4587cf4d]
lea ebx, [ecx + ecx]
not ebx
add ebx, ecx
and ebx, eax
mov ebp, edi
and ebp, 0x44
mov edx, eax
and edx, 0xbb
or edx, ebp
xor edx, 0xbb
and edx, ecx
or edx, ebx
add dl, 0x50
mov byte [esp + eax + 0x4587cf4d], dl
inc eax
dec edi
cmp eax, 0xba7830b9
jne 0x408fa0
mov dword [esp + 6], 0xede5e39f
mov word [esp + 0xa], 0xf2eb
mov edx, 0x5060c655
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx - 0x5060c64f]
mov ecx, edx
and ecx, eax
add ecx, ecx
sub eax, ecx
add eax, edx
mov ecx, eax
and ecx, 0x57
xor eax, 0x57
lea eax, [eax + ecx*2]
inc al
mov byte [esp + edx - 0x5060c64f], al
inc edx
cmp edx, 0x5060c65b
jne 0x409000
mov dword [esp + 0x1b], 0xb30e8ec
mov dword [esp + 0x1f], 0x7612020b
mov dword [esp + 0x23], 0x754fb77d
mov dword [esp + 0x27], 0x73707e7e
mov dword [esp + 0x2b], 0x7b7a7678
mov dword [esp + 0x2f], 0x7ea74c7b
mov dword [esp + 0x33], 0xa1666866
mov dword [esp + 0x37], 0x716b7f79
mov dword [esp + 0x3b], 0x756db25a
mov dword [esp + 0x3f], 0x8a5a7368
mov byte [esp + 0x43], 0xa9
mov edx, 0x256bd439
mov edi, dword [esp + 0x14]
nop
nop
nop
movzx eax, byte [esp + edx - 0x256bd41e]
xor eax, edx
add eax, 0xd4a15e37
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov byte [esp + edx - 0x256bd41e], al
inc edx
cmp edx, 0x256bd462
jne 0x409090
mov eax, dword [esp + 0x10]
add dword [esp + 0xc], eax
mov word [esp], 0x8889
mov byte [esp + 2], 0xe6
mov ebp, 0xa200a3c4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + ebp + 0x5dff5c3c]
mov ebx, ecx
and ebx, ebp
mov eax, ebx
or al, 0xfd
inc al
mov edx, ebx
and dl, 0xc5
mul dl
mov edx, eax
add dl, cl
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub dl, al
movzx eax, dl
add eax, ebp
add al, 0xe0
mov byte [esp + ebp + 0x5dff5c3c], al
inc ebp
cmp ebp, 0xa200a3c7
jne 0x4090e0
movzx edx, byte [esp]
mov ecx, dword [esp + 0xc]
mov eax, ecx
test dl, dl
je 0x40914b
lea ebx, [esp + 1]
mov eax, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ebx]
inc ebx
test dl, dl
jne 0x409140
mov byte [eax], 0
movzx edx, byte [edi + 0x60]
test dl, dl
je 0x40916b
lea ebx, [edi + 0x61]
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ebx]
inc ebx
test dl, dl
jne 0x409160
mov byte [eax], 0
movzx edx, byte [esp + 0x1b]
test dl, dl
je 0x40918b
lea ebx, [esp + 0x1c]
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ebx]
inc ebx
test dl, dl
jne 0x409180
mov byte [eax], 0
movzx edx, byte [esi]
test dl, dl
je 0x4091ab
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x4091a0
mov byte [eax], 0
movzx edx, byte [esp + 6]
test dl, dl
je 0x4091cb
lea esi, [esp + 7]
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x4091c0
mov byte [eax], 0
mov esi, dword [esp + 0x60]
movzx edx, byte [esi]
test dl, dl
je 0x4091eb
inc esi
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x4091e0
mov byte [eax], 0
movzx edx, byte [esp + 3]
test dl, dl
je 0x40920b
lea esi, [esp + 4]
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x409200
mov byte [eax], 0
sub eax, ecx
mov ecx, dword [edi + 0x80]
mov edx, ecx
and edx, eax
xor eax, ecx
lea eax, [eax + edx*2]
mov dword [edi + 0x80], eax
add esp, 0x44
pop esi
pop edi
pop ebx
pop ebp
ret 0xc