Function at 0xedc156
Capabilities:
Encode data using xor

Disassembly:
lea ecx, [eax - 0x11e226eb]
mov dword [ebp], edx
sar cx, cl
bts ecx, eax
jmp edi
mov ecx, dword [ecx + ebp - 0x3e0766df]
bts edx, 0x8c
ror eax, 0x18
mov edx, dword [ecx + edx - 0x1000]
mov dword [ebp + eax], edx
adc eax, 0x440d611c
call fcn.00b6ae6d
mov eax, 0xb08eb704
movzx edx, ax
and dx, dx
movzx ecx, word [ebp + edx - 0xb704]
dec dx
jb 0xb7cdd2
xor cx, bx
ror cx, 1
cwd
xor cx, dx
bt dx, dx
cwd
add cx, dx
inc edx
jge 0xb96fbd
mov eax, 0xdb004426
mov ecx, 0x1d0a3f25
lea edx, [eax + eax + 0x84021]
movzx ecx, byte [esi + ecx - 0x1d0a3f25]
inc al
xor cl, bl
xor cl, 0xb2
neg cl
sal eax, 0x70
xor edx, edx
ror cl, 1
sar al, 0xc1
adc dl, dl
sbb dx, dx
xor cl, 0x30
mul ax
mul al
xor bl, cl
add ecx, esp
xor eax, eax
not edx
adc eax, dword [ecx + eax*2]
mov dword [edi - 4], eax
imul dx, dx
movsx ecx, dl
push edx
movzx edx, byte [esi + ecx]
lea eax, [ecx + ecx - 0x4844d24a]
sar dword [esp + ecx*4 - 4], 0xc
xor dl, bl
shl dword [esp + ecx*2 - 2], 0x81
push ecx
jl 0xc5ca92
bts ax, dx
neg cx
inc eax
add cx, 0x3d3f
jmp 0xc6383e
cwde
mov edx, dword [esi]
xchg byte [esp + 5], cl
add word [esp], cx
sal ax, 0x68
xor edx, ebx
add eax, 0x5c0c1a3b
inc cx
bswap edx
dec ax
adc ecx, 0xe8038c17
inc byte [esp + eax - 0x5c0b3a36]
inc edx
rol edx, 2
sal dword [esp + eax - 0x5c0b3a36], 0xe3
sbb cl, ah
bswap edx
ror cx, cl
rol word [esp + eax - 0x5c0b3a3a], 0xc7
bts ecx, ecx
rol edx, 1
xadd eax, ecx
xor word [esp + eax*2 - 0x2122aaa8], cx
lea edx, [edx + ecx*2 + 0x257dd042]
xor ebx, edx
add edi, edx
not byte [esp + eax*2 - 0x2122aaaa]
mov dword [esp + eax - 0x10915557], edi
ret 4
add dl, cl
ror dl, cl
lea eax, [ecx*2 + 0x48b2ec15]
pop eax
shr dword [esp + ecx - 1], cl
adc dl, cl
sub dword [esp + ecx - 1], eax
inc dword [esp + ecx*2 - 2]
sub word [esp + ecx], ax
rol dl, cl
xor bl, dl
lea edx, [esp + edx + 4]
mov ecx, dword [edx + ecx - 1]
sar dword [esp + eax*2 - 2], 0xb1
push eax
mov dword [edi + eax*4 - 0xc], ecx
xadd byte [esp + eax + 6], al
mov ecx, eax
movsx edx, byte [esp + eax*2 + 1]
lea edi, [edi + eax - 8]
pop eax
xchg cx, ax
xor edx, dword [esi + eax*2 + 2]
xchg word [esp + eax*2], ax
rol eax, 0xa9
lea esi, [esi + eax - 0x7ffdfa]
bswap ecx
xor edx, ebx
sub dword [esp + eax - 0x7ffe00], eax
inc word [esp + eax - 0x7ffdfe]
lea edx, [eax + edx + 0x5d27e387]
lea eax, [eax + ecx*4 - 0x78ed2256]
sub byte [esp + ecx - 0xffffff], cl
jg 0xc8f655
xor bx, cx
btc dx, 0x14
mov word [esi + edx - 0x10012], cx
movzx ecx, ax
cwde
movzx ecx, byte [ebp + edx - 0x1000e]
xor cl, bl
shl al, 0xa6
xor cl, 0x21
not cl
neg cl
rol ax, 0xa4
rol edx, 0x47
sal eax, 0x39
sbb cl, 0xaa
bt eax, 9
imul eax
lea edx, [edx + eax*4 + 0x5fa3a113]
xor bl, cl
call fcn.011e2fa5
dec esi
lea esi, [esp + esi + 0x18]
dec eax
mul eax
call fcn.011c7393
mov eax, 0x1db6a8ae
lea eax, [eax + eax*2 + 0x13babd30]
lea esi, [esi + eax - 0x6cdeb73e]
mov eax, dword [esi + eax - 0x6cdeb73a]
xor eax, ebx
mov edx, 0x2d0b9433
add edx, edx
jno 0x11a54ce
mov ecx, 0x3c29f20d
sal ecx, cl
mov eax, dword [ebp + ecx - 0x3e41a000]
xor ecx, 0xd6af7fae
movzx edx, cx
bt edx, ecx
lea ebp, [edx + ebp - 0xdfaa]
xor eax, ebx
not cl
not eax
add cx, 0xdb0c
rol eax, 1
or dl, ch
or edx, edx
call fcn.00e733d4
xor edx, 0x9f10b301
rol al, 0x27
sbb eax, eax
sbb edx, 0x9dacb30c
neg eax
ror word [esp + eax - 1], 0xe9
rol edx, 1
mov dword [esp + eax - 1], ecx
and dword [esp + eax*2 - 2], ecx
not edx
sbb eax, 0xdc1d2eb7
mov dword [esp + eax*2 - 0x47c5a294], 0x2c261e15
sbb edx, 0xbfa063b9
sar eax, 0xf2
neg eax
xor ebx, edx
sub word [esp + ecx*2 - 0x1fffffe], ax
lea ecx, [eax + ecx*8 - 0x1beea847]
shr ax, cl
adc ebp, edx
btc ecx, 0xa3
pop edx
jae fcn.00c19dd7
neg al
and dword [esp + 4], edx
inc al
xor bl, al
bt edx, 0xba
lea eax, [esp + eax + 8]
and dword [esp + 1], 0xc3172a31
inc dword [esp + 4]
mov dword [eax], ecx
call fcn.00b6a1d7
jne 0xc8f6b6
mov cl, 0x7a
jbe 0xc8f72e
cmp eax, 0xacb31a92
xchg ebp, eax
dec edi
mov ecx, dword [ebx - 0x1e35e7d2]
xchg edx, eax
invalid
invalid
rol ecx, 0x1c
not edx
mov dl, byte [ecx + ebp - 0x7e3ff661]
lea ebp, [ebp + ecx - 0x7e3ff65f]
inc cx
xor cx, cx
and cl, cl
mov byte [eax + ecx - 0x7e3f0000], dl
movsx edx, cl
movsx eax, cx
bswap eax
add edx, edi
jmp edx
inc cx
rol esi, 1
inc cx
xor esi, 0x456640a0
xor esp, esi
xadd dword [esp + eax - 0x7d05], esi
ja 0xc8d487
mov edx, 0xd3ba4435
lea eax, [edx*8 - 0x3df7a47e]
rol edx, 0x61
mov dx, word [ebp + eax - 0x5fda7d2a]
shl ax, 0xb
lea ebp, [ebp + eax - 0x5fda4ffe]
lea ecx, [eax - 0x6973965b]
inc cl
lea esi, [eax + esi - 0x5fda5001]
movzx ecx, byte [eax + esi - 0x5fda5000]
dec al
sub ax, 0x7f2d
xor cl, bl
inc al
rol cl, 1
ror ax, 0x29
rol eax, 0x11
not ax
sbb cl, 0x1f
ror eax, 9
neg cl
inc cl
neg cl
bt eax, eax
push eax
xor bl, cl
bts eax, eax
inc byte [esp + eax*2 - 0x4ad3d040]
lea ecx, [esp + ecx + 4]
inc al
push eax
sub eax, 0xc2b46896
mov word [eax + ecx - 0x62b57f8c], dx
xadd dword [esp + eax - 0x62b57f88], eax
lea esi, [eax + esi - 0x256ae824]
mov ecx, 0xcc833b2c
ja 0xc0d832
rol cl, 1
shr dword [esp + eax*8 - 0x614804], 0xe
bts eax, 7
inc dword [esp + eax*4 - 0x30a603]
neg cl
sub cl, 0x36
xor eax, eax
xor bl, cl
dec eax
xor eax, 0x84a3960d
lea ecx, [esp + ecx + 8]
not eax
or dword [esp + 4], eax
dec al
mov dword [ecx], edx
jbe 0xb7dda5
shr byte [esp + 3], 0x64
neg byte [esp + 1]
pop eax
pop ecx
jmp ebp
bswap eax
mov ecx, 0xa899f080
adc cx, 0xed8b
btc edx, 0x88
inc eax
shr edx, 0xb0
shr cx, cl
xor eax, 0x31fc9a4
shr edx, cl
bt cx, dx
inc cl
adc eax, edx
xor dx, cx
bswap eax
sbb dl, dh
shl dl, 0xe5
add cl, ch
dec eax
not ecx
xor ebx, eax
lea edx, [ecx + edx - 0x1542ce43]
bswap ecx
add edi, eax
mov eax, dword [edx + ebp - 0x42243220]
jmp 0xeafcba