Function at 0x1576016
Capabilities:
Encode data using xor

Disassembly:
sub edx, ecx
mov dword [ecx + edi - 1], eax
jnp 0x15cbb7d
mov esi, eax
mov edi, edx
jmp 0x264dc02
shrd dx, ax, cl
pop eax
mov word [edi], dx
call fcn.026b47dc
mov esi, 0x2d243e05
inc esp
movzx ebx, si
dec esi
mov ebp, dword [edi + ebx - 0x3e05]
inc eax
movzx ecx, dh
dec eax
lea edi, [edi + esi*2 - 0x5a487c02]
inc eax
movzx eax, dh
inc ecx
push ebp
dec eax
lea ebp, [esi + esi*8 - 0x4c611dd7]
inc ebp
xor ebx, ebx
popfd
push ecx
movzx edx, ax
inc ecx
mov edx, dword [eax + esi - 0x2d243e05]
dec esp
lea esp, [eax*2 + 0x409d9888]
inc bp
and esp, esp
mov byte [esp + esi - 0x2d243e05], al
dec ebp
lea eax, [eax + esi - 0x2d243e01]
inc edx
xadd dword [esp + ebx + 3], ecx
inc esp
mov edx, dword [esp + esi*2 - 0x5a487c08]
inc ecx
xor edx, ecx
inc esp
movzx ebp, bp
inc ecx
pop edi
inc ebp
movzx esi, bp
xor edx, 0xa3bc3708
inc sp
bts ebp, esi
bswap edx
xadd esi, ecx
dec eax
sar eax, 0x51
neg edx
dec eax
cwde
inc ebp
sub dh, bl
bswap edx
inc ebp
and bl, bh
jg 0x2888d83
inc bp
adc edx, edi
inc ecx
push ecx
xor dword [esp + esi - 0x2d243e05], edx
inc esp
and bh, al
sar bp, 0xe6
inc ecx
pop ecx
dec eax
not ebp
inc cx
sal ebp, 0xc1
dec eax
arpl dx, dx
inc eax
div dh
inc cx
xor edx, 0xf41b803
lcall 0xf41, 0xda1348c2
retf 0xf41
xor al, bl
ror al, 1
mov dword [esp + edx - 1], 0x74032eb6
lea edx, [edx + 0x3f27eba9]
sal edx, 0xe
adc al, dl
rol edx, 0x29
xchg dword [esp], edx
rol al, 1
inc al
and dx, dx
xor bl, al
xadd word [esp + edx - 0x74032eb0], dx
mov dword [esp + edx - 0x74033671], edi
imul dx, word [esp + edx - 0x74033675]
jb 0x225af12
mov eax, 0x369e1913
shl eax, 0xf0
mov esp, edi
pop ebp
pop eax
pop edx
mov ecx, 0x71b9e8b0
push ecx
mov ebx, 0xe2a5a1a1
mov edi, dword [esp + ecx - 0x71b9e8ac]
lea ecx, [ecx + ecx + 0x2a91cba1]
mov ebx, dword [esp + ecx - 0xe059cf9]
mov esi, ecx
push dword [esp + 0xc]
popfd
call fcn.02576c4c
stosb byte es:[edi], al
shl byte [esi - 0x3f0a243a], 0x56
or al, 0xb4
outsb dx, byte [esi]
xchg esp, eax
or eax, 0xd6e128d2
pop ebp
invalid
mov eax, dword [esp + edx - 0x7ffffffa]
xor ecx, 0xa51aa788
sbb esi, 4
btc eax, ecx
neg dword [esp + edx - 0x7ffffff9]
mul ecx
mov eax, dword [edx + esi - 0x7426d7cc]
ror dword [esp + edx - 0x7426d7c8], cl
not dword [esp + edx - 0x7426d7c4]
xor eax, ebx
neg edx
btc ecx, ecx
jae 0x260b3b3
not eax
and edx, edx
sar cx, cl
xchg ch, dl
neg eax
ror eax, 3
lea edx, [edx + ecx - 0x67516660]
sub edx, 0x489f8a8b
not eax
xor ebx, eax
xchg byte [esp + 1], ch
imul ecx, edx
xor byte [esp + ecx - 0x215954a2], dh
adc ebp, eax
shr word [esp + ecx - 0x215954a8], cl
or byte [esp + ecx*2 - 0x42b2a956], dh
lea eax, [ecx - 0x24df2fec]
pop edx
pop edx
pop eax
jns fcn.0229206a
test ebx, ebx
call fcn.024d9a84
mov eax, 0xc93c709b
mov edx, dword [ebp]
bts eax, eax
not eax
imul eax, eax
adc ebp, 3
xor edx, ebx
inc eax
sar eax, 0x13
rol al, 0x21
xor edx, 0x97b1f6a0
neg eax
bswap edx
jle 0x1565613
jge 0x285cb1e
sbb cl, byte [ecx + 0x5f]
xlatb
popfd
pop edi
push eax
sub eax, 0x4c6bfc0e
sub eax, 0x408da164
sub eax, 0x8316a194
mov byte [0xa17d5352], al
mov ah, 0xd2
add byte [edx + edx*2], cl
mov ch, 0x52
jmp 0x161aa29
mov dword [esp + edx - 0x740392f9], ebp
inc edx
not edx
movsx ebp, dl
push ebx
mov ebp, esi
adc edx, 0x902cdbb0
mov ebx, 0xae108ab4
neg edx
mov ebx, eax
mov eax, 0x40236d17
mov edx, ebx
btr ax, ax
ror ax, 0xd
and al, ah
shl edx, 2
xchg ah, al
mov eax, ebp
add eax, edx
mov dword [ebp - 4], eax
jmp 0x25111ae
jmp 0x25a4d0a
jmp 0x161a9fa
and eax, edx
cld
push 0x1504b88a
sal dword [esp], 0x48
shl byte [esp + 2], 0xc3
rep movsb byte es:[edi], byte [esi]
mov esi, 0x902dc02d
push dword [esp + 4]
popfd
pop esi
pop esi
call fcn.015f76d1
pop edx
cmp al, 0x19
call 0x25bfc914
aad 0x45
jnp 0x264dc0d
inc ecx
push ss
hlt
or al, 0x13
xor dl, 7
sar eax, 0x7c
neg eax
dec dl
bswap eax
or al, 0x11
xor ax, ax
ror dl, 1
not eax
neg dl
xor ax, ax
inc al
sbb dl, al
not dl
and al, al
sal al, 0xa7
xor bl, dl
call fcn.0160892c
mov eax, 0x10268f3a
movsx edx, ax
mov eax, dword [eax + edi - 0x10268f3a]
add edi, 4
xor eax, ebx
mov ecx, edx
add cx, 0xec3d
sar dx, 0xcc
rol eax, 1
dec eax
ror ecx, cl
sar edx, 0x96
inc dx
not eax
ror edx, cl
rol eax, 2
call fcn.0287e419
add ebp, ecx
bt dx, 0x22
btr edx, edx
mov ecx, dword [edi + eax*2 - 0xd5b6]
sal eax, 0x99
push edx
shr edx, 0x75
mov eax, dword [edi + edx - 0x59d]
pop edx
adc edi, 7
bswap edx
xor dl, dh
mov dword fs:[edx + ecx - 0x9003581], eax
lea eax, [edx*4 - 0x404222ea]
movzx ecx, al
jge 0x1572f69
jmp ebp
sal eax, 0xf2
dec edx
ror eax, 0xf7
or al, al
xor edx, 0xc306d207
bt eax, eax
sbb edx, 0x45a34631
btr ax, ax
add ax, 0x4cab
xor ebx, edx
neg ax
add eax, eax
add esi, edx
movsx edx, al
movzx edx, byte [ebp + eax - 0x60016696]
sar eax, 6
setne al
cbw
lea ebp, [ebp + eax*4 - 0x6000003]
xor dl, bl
xchg ah, al
rol eax, 0x53
inc eax
sbb dl, al
jmp 0x27a6f94