Function at 0x4095ab
Capabilities:
Encode data using xor

Disassembly:
add byte [eax], 0
mov word [ebp - 0x58], ax
mov eax, 0x29ec
mov word [ebp - 0x56], ax
mov eax, 0x57e4
mov word [ebp - 0x54], ax
mov eax, 0x1458
mov word [ebp - 0x52], ax
mov eax, 0x4d1
mov word [ebp - 0x50], ax
mov eax, 0x9dc1
mov word [ebp - 0x4e], ax
mov eax, 0x7020
mov word [ebp - 0x4c], ax
mov eax, 0xfc6a
mov word [ebp - 0x4a], ax
mov eax, 0xed8f
mov word [ebp - 0x48], ax
mov eax, 0xefba
mov word [ebp - 0x46], ax
mov eax, 0x8e88
mov word [ebp - 0x44], ax
mov eax, 0xd689
mov word [ebp - 0x42], ax
mov eax, 0xd18e
mov word [ebp - 0x40], ax
mov eax, 0x8740
mov word [ebp - 0x3e], ax
mov eax, 0xa6de
mov word [ebp - 0x3c], ax
mov eax, 0x8e01
mov word [ebp - 0x3a], ax
mov eax, 0x3ac2
mov word [ebp - 0x38], ax
mov eax, 0x6871
mov word [ebp - 0x36], ax
mov eax, 0xee11
mov word [ebp - 0x34], ax
mov eax, 0x8c2a
mov word [ebp - 0x32], ax
mov eax, 0x5fc1
mov word [ebp - 0x30], ax
mov eax, 0x337f
mov word [ebp - 0x2e], ax
mov eax, 0x6d32
mov word [ebp - 0x2c], ax
mov eax, 0xd471
mov word [ebp - 0x2a], ax
mov eax, 0x7dc9
mov word [ebp - 0x28], ax
mov eax, 0xcd9
mov word [ebp - 0x26], ax
mov eax, 0x5071
mov word [ebp - 0x24], ax
mov eax, 0xa094
mov word [ebp - 0x22], ax
mov eax, 0x1605
mov word [ebp - 0x20], ax
mov eax, 0x6fd7
mov word [ebp - 0x1e], ax
mov eax, 0x3638
mov word [ebp - 0x1c], ax
mov eax, 0x4ffd
mov word [ebp - 0x1a], ax
mov eax, 0xb3b2
mov word [ebp - 0x18], ax
mov eax, 0x9717
mov word [ebp - 0x16], ax
mov eax, 0xbeca
mov word [ebp - 0x14], ax
mov eax, 0x721c
mov word [ebp - 0x12], ax
mov eax, 0x623f
mov word [ebp - 0x10], ax
mov eax, 0x68f
mov word [ebp - 0xe], ax
mov eax, 0x698f
mov word [ebp - 0xc], ax
mov eax, 0x7fff
mov word [ebp - 0xa], ax
mov eax, 0xe29c
mov word [ebp - 8], ax
mov eax, 0x27e8
mov word [ebp - 6], ax
mov eax, 0x7189
mov word [ebp - 4], ax
mov eax, 0x4939
mov word [ebp - 2], ax
mov eax, 0xdb4e
mov word [ebp], ax
mov eax, 0xc3fd
mov word [ebp + 2], ax
mov eax, 0x8f8b
mov word [ebp + 4], ax
mov eax, 0xf4ee
mov word [ebp + 6], ax
mov eax, 0x9395
mov word [ebp + 8], ax
mov eax, 0x6b1a
mov word [ebp + 0xa], ax
mov eax, 0xd1b1
mov word [ebp + 0xc], ax
mov eax, 0xf6a
mov word [ebp + 0xe], ax
mov eax, 0x4d8b
mov word [ebp + 0x10], ax
mov eax, 0xa696
mov word [ebp + 0x12], ax
mov eax, 0xa79d
mov word [ebp + 0x14], ax
mov eax, 0xbb9e
mov word [ebp + 0x16], ax
mov eax, 0xdf
mov word [ebp + 0x18], ax
mov eax, 0x93c
mov word [ebp + 0x1a], ax
mov eax, 0x856f
mov word [ebp + 0x1c], ax
mov eax, 0xb51c
mov word [ebp + 0x1e], ax
mov eax, 0xf1c5
mov ecx, eax
mov word [ebp + 0x20], cx
mov ecx, 0xe83d
mov word [ebp + 0x22], cx
mov word [ebp + 0x3a], ax
mov eax, 0xda01
mov word [ebp + 0x3c], ax
mov eax, 0xf047
mov word [ebp + 0x3e], ax
mov eax, 0x3dd8
mov word [ebp + 0x40], ax
mov eax, 0x72ab
mov word [ebp + 0x42], ax
mov eax, 0x784c
mov word [ebp + 0x44], ax
push 0x77
pop eax
mov word [ebp + 0x46], ax
mov eax, 0xb05f
mov word [ebp + 0x48], ax
mov eax, 0xa245
mov word [ebp + 0x4a], ax
mov eax, 0x1794
mov word [ebp + 0x4c], ax
mov eax, 0x16d9
mov word [ebp + 0x4e], ax
mov eax, 0xc6c6
mov word [ebp + 0x50], ax
mov eax, 0xffa2
mov word [ebp + 0x52], ax
mov eax, 0xf099
mov word [ebp + 0x54], ax
mov eax, 0x3d88
mov word [ebp + 0x56], ax
mov eax, 0xa624
mov word [ebp + 0x58], ax
mov eax, 0xde3d
mov word [ebp + 0x5a], ax
mov eax, 0xd35b
mov word [ebp + 0x5c], ax
mov eax, 0x82b3
mov word [ebp + 0x5e], ax
mov ecx, 0x393a
mov word [ebp + 0x24], cx
mov eax, 0x7e9c
mov word [ebp + 0x60], ax
mov ecx, 0x3d1
mov word [ebp + 0x26], cx
mov eax, 0xf406
mov word [ebp + 0x62], ax
mov ecx, 0x68d8
mov word [ebp + 0x28], cx
mov eax, 0x1608
mov word [ebp + 0x64], ax
mov ecx, 0x9659
mov word [ebp + 0x2a], cx
mov eax, 0x7aa
mov word [ebp + 0x66], ax
mov ecx, 0xf791
mov word [ebp + 0x2c], cx
mov eax, 0xf97e
mov word [ebp + 0x68], ax
mov ecx, 0xb2c2
mov word [ebp + 0x2e], cx
mov eax, 0x373a
mov word [ebp + 0x6a], ax
mov ecx, 0x234
mov word [ebp + 0x30], cx
mov eax, 0xc441
mov word [ebp + 0x6c], ax
mov ecx, 0x9b5c
mov word [ebp + 0x32], cx
mov eax, 0x15b0
mov ecx, 0xb1bf
mov word [ebp + 0x6e], ax
mov word [ebp + 0x34], cx
mov eax, 0xb699
mov ecx, 0x72eb
mov word [ebp + 0x70], ax
mov eax, 0xf81c
mov word [ebp + 0x36], cx
mov ecx, 0xdaba
mov word [ebp + 0x72], ax
mov word [ebp + 0x38], cx
mov eax, 0xe38f
mov word [ebp + 0x74], ax
mov eax, 0xcb97
mov ecx, edi
mov word [ebp + 0x76], ax
call 0x3fb0c0
cdq
and edx, 3
add eax, edx
mov esi, eax
sar esi, 2
cmp esi, 0x7b
jae 0x4099ac
lea ecx, [ebp - 0x174]
mov eax, edi
call 0x3fae9e
test al, al
je 0x4099ac
xor eax, eax
test esi, esi
jle 0x4099a2
lea ecx, [ebp + eax*2 - 0x173]
mov dx, word [ecx - 1]
movzx cx, byte [ecx]
shl dx, 8
or dx, cx
xor dx, word [ebp + eax*2 - 0x7c]
rol dx, 8
mov word [edi + eax*2], dx
inc eax
cmp eax, esi
jl 0x40997a
xor eax, eax
mov word [edi + esi*2], ax
mov eax, esi
jmp 0x4099ae
xor eax, eax
pop esi
add ebp, 0x78
leave
ret