Function at 0x415512
Capabilities:
Encode data using xor

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x1ec
push esi
mov eax, 0xe722
mov word [ebp - 0x7c], ax
mov eax, 0xf62f
mov word [ebp - 0x7a], ax
mov eax, 0xb67c
mov word [ebp - 0x78], ax
mov eax, 0xdd5a
mov word [ebp - 0x76], ax
mov eax, 0xfdb
mov word [ebp - 0x74], ax
mov eax, 0xb94e
mov word [ebp - 0x72], ax
mov eax, 0x5196
mov word [ebp - 0x70], ax
mov eax, 0xe040
mov word [ebp - 0x6e], ax
mov eax, 0xf694
mov word [ebp - 0x6c], ax
mov eax, 0xabe2
mov word [ebp - 0x6a], ax
mov eax, 0x21bb
mov word [ebp - 0x68], ax
mov eax, 0xfc08
mov word [ebp - 0x66], ax
mov eax, 0xe48e
mov word [ebp - 0x64], ax
mov eax, 0xb96a
mov word [ebp - 0x62], ax
mov eax, 0x55d7
mov word [ebp - 0x60], ax
mov eax, 0xa6e5
mov word [ebp - 0x5e], ax
mov eax, 0xa4a1
mov word [ebp - 0x5c], ax
mov eax, 0x2172
mov word [ebp - 0x5a], ax
mov eax, 0x822d
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 ecx, 0x393a
mov word [ebp + 0x24], cx
mov ecx, 0x3d1
mov word [ebp + 0x26], cx
mov ecx, 0x68d8
mov word [ebp + 0x28], cx
mov ecx, 0x9659
mov word [ebp + 0x2a], cx
mov ecx, 0xf791
mov word [ebp + 0x2c], cx
mov ecx, 0xb2c2
mov word [ebp + 0x2e], cx
mov ecx, 0x234
mov word [ebp + 0x30], cx
mov eax, 0xda01
mov word [ebp + 0x3c], ax
mov ecx, 0x9b5c
mov word [ebp + 0x32], cx
mov eax, 0xf047
mov word [ebp + 0x3e], ax
mov ecx, 0xb1bf
mov eax, 0x3dd8
mov word [ebp + 0x40], ax
mov word [ebp + 0x34], cx
mov ecx, 0x72eb
lea eax, [ecx - 0x40]
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 eax, 0x7e9c
mov word [ebp + 0x60], ax
mov eax, 0xf406
mov word [ebp + 0x62], ax
mov eax, 0x1608
mov word [ebp + 0x64], ax
mov eax, 0x7aa
mov word [ebp + 0x66], ax
mov eax, 0xf97e
mov word [ebp + 0x68], ax
mov eax, 0x373a
mov word [ebp + 0x6a], ax
mov eax, 0xc441
mov word [ebp + 0x6c], ax
mov eax, 0x15b0
mov word [ebp + 0x6e], ax
mov eax, 0xb699
mov word [ebp + 0x70], ax
mov eax, 0xf81c
mov word [ebp + 0x72], ax
mov eax, 0xe38f
mov word [ebp + 0x74], ax
mov word [ebp + 0x36], cx
mov dword [ebp + 0x38], 0xf1c5daba
mov eax, 0xcb97
mov ecx, edi
mov word [ebp + 0x76], ax
call fcn.00405d35
cdq
and edx, 3
lea esi, [edx + eax]
sar esi, 2
cmp esi, 0x7b
jae 0x4159b9
lea ecx, [ebp - 0x174]
mov eax, edi
call fcn.00405a23
test al, al
je 0x4159b9
xor eax, eax
test esi, esi
jle 0x4159af
lea ecx, [ebp + eax*2 - 0x173]
mov dx, word [ecx - 1]
movzx ecx, 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 0x415988
xor eax, eax
mov word [edi + esi*2], ax
mov eax, esi
jmp 0x4159bb
xor eax, eax
pop esi
add ebp, 0x78
leave
ret