Function at 0x157c63a
Capabilities:
Encode data using xor

Disassembly:
xor bx, cx
and edx, edx
lea ebp, [ebp + edx - 0x7ff10002]
imul dx, ax
mov word [edx + ebp - 0x7ff10000], cx
btc edx, 0xad
lea ecx, [eax*4 + 0x720e548a]
lea esi, [esi + edx - 0x7ff12004]
mov eax, dword [ecx + esi - 0x71d25486]
jb 0xda36e3
xor dl, 0x19
xor eax, ebx
jmp 0xd6edf4
dec ecx
neg eax
bswap eax
ror dl, cl
bts edx, edx
call fcn.0153f0e2
xor ebx, edx
ror ax, 0xa4
neg eax
jne 0x151d52e
inc ecx
mov ecx, 0x30224b39
inc edx
movzx ecx, byte [edi + ecx*2 - 0x60449672]
inc ecx
not cl
dec ebx
lea eax, [ecx + ecx*4 - 0x1d4e0067]
dec al
dec ecx
lea edi, [ecx + edi - 0x30224bc5]
inc ecx
mov edx, 0x3500469b
inc bp
imul ecx, ecx
inc ecx
xor cl, bl
dec eax
lea ebp, [eax*4 + 0x4d378bbd]
push eax
dec ecx
shr edx, 0xe1
inc cl
neg cl
inc cl
xor cl, 0x1a
push ebp
dec edx
shl dword [esp + edx + 5], 0x89
jbe 0x1559ecf
jmp 0x15aa95c
push 0xefb5331e
call fcn.01544ef7
jg 0xda36ed
push edi
or ch, byte [edx - 0x58]
sbb byte [ecx - 0x5fd5f7a], cl
pop ebx
add dword [ebx + 0x522fc8b], 0x69
inc eax
mov dword [ebp - 0x8c09305], eax
adc dl, dh
mov edx, 0xfe199c51
mov ch, al
int1
dec edi
push ebx
or ecx, eax
and dword [esi + 0x56], esi
cmpsb byte [esi], byte es:[edi]
adc al, bh
cmp al, bh
retf
add edi, edx
lea edx, [eax + ecx + 0x2980ef29]
dec dword [esp + ecx]
mov ax, word [ebp + ecx*4]
xor cx, word [ecx + ebp + 2]
sub edx, edx
jg 0x1547cbd
lea ebp, [ebp + edx*8 + 2]
and ax, cx
adc cl, 0xb8
not cl
inc edx
mov dword [esp + ecx*2 - 0x60453a46], eax
inc edx
div byte [esp + ecx - 0x30229d1f]
call fcn.00ccf132
dec esp
lea eax, [ebx*8 + 0x7e94101c]
dec esp
add ebp, eax
movzx ebp, word [ebx + edi - 0x70be211e]
dec eax
lea edi, [ebx + edi - 0x70be211c]
inc cx
xor ebp, ebx
dec esi
lea eax, [0xd3c6197]
inc ecx
shr cl, 0x45
xor bp, 0xcba0
dec esp
bt edx, edx
inc ecx
sal dh, 0xe6
mov ecx, ebx
inc bp
inc ecx
sar ah, 0x61
rol bp, 1
not bp
inc sp
xor ebx, ebp
inc ebp
sub bh, ah
dec edi
lea edx, [edx + ecx*4 + 0x61319101]
dec eax
add ebp, esp
dec eax
xor edx, 0x7d286310
dec eax
bts ebx, 0xbd
dec ebx
lea eax, [esp + edx*4 - 0x1bf4efd4]
inc esp
mov ecx, dword [edx + ebp - 0x72b7c391]
lea ecx, [esp + ecx + 0xc]
cwde
imul byte [esp + eax*2 - 0x344f]
xor ax, word [ecx + eax*2]
mov word [ebp + edx - 0x750c1750], ax
lea ebp, [ebp + edx - 0x750c1750]
xchg word [esp + edx - 0x750c1742], dx
mov eax, dword [esi + edx - 0x750c0049]
mov dword [esp + edx - 0x750c0043], edx
movsx ecx, word [esp + edx - 0x750c003b]
shl ecx, 0x6e
lea esi, [edx + esi - 0x750c0049]
sal ecx, 0x28
mov word [esp + ecx + 7], dx
add dx, word [esp + edx - 0x750c003a]
xor eax, ebx
sub ecx, 0x711c7101
rol cl, 0x27
ror eax, 1
btc dx, cx
xor eax, 0x3d16b183
lea eax, [eax + edx - 0x6be7ae0b]
and word [esp + edx - 0x750ccc3a], cx
not eax
sal cl, 0x42
add cl, byte [esp + edx - 0x750ccc43]
dec eax
ror eax, 1
xor ebx, eax
add edi, eax
shr byte [esp + edx - 0x750ccc3a], 0x81
jno 0x15ad5a3
dec eax
arpl ax, ax
jle 0x15b9182
xor ecx, ecx
mov word ss:[eax + ecx*2], dx
jne 0xcd8f2c
jns 0x15af86b
movzx eax, dx
pop edx
pop ecx
pop ecx
je fcn.015b9a99
mov eax, 0xb9892201
sub esi, 4
lea edx, [eax*4 + 0x25366912]
sub eax, eax
mov edx, dword [esi + eax]
mov ecx, eax
xor edx, ebx
ror edx, 2
push ecx
lea edx, [eax + edx + 0x3314e71e]
or ax, ax
sal dword [esp + eax*4], 0x6f
bswap edx
cwde
sub ax, 0xc53c
neg word [esp + eax - 0x3ac4]
neg edx
jmp 0xd8412a
xor ecx, ecx
lea esi, [esi + ecx*2 - 4]
movsx eax, cl
movsx edx, al
add word [esp + ecx + 1], ax
add edx, dword [ecx + esi]
inc ax
xor edx, ebx
push eax
sar dword [esp + ecx*2 + 4], 0xb4
call fcn.0155da2a
mov eax, 0x593dabb3
mov eax, dword [edi + eax - 0x593dabb3]
dec eax
add edi, 4
mov edx, 0x48988a2d
mov ebp, edx
inc ecx
xor eax, ebx
rol eax, 1
inc esp
movsx edi, ch
call fcn.015460e2
mov eax, 0x8e8ee425
shr eax, 0x3a
mov ecx, 0x3a360598
lea esi, [esi + eax*2 - 0x47]
mov al, byte [esi + eax - 0x23]
ror ecx, cl
lea edx, [ecx - 0x1af7ac6a]
and edx, ecx
xor al, bl
dec al
inc cl
dec edx
neg al
btc ecx, ecx
adc ecx, 0x189b7b97
adc edx, ecx
adc al, 0xa5
shr dx, 0x29
rol al, 1
dec ecx
sar edx, 0x57
sbb al, 0x96
sal ecx, cl
not dx
call fcn.0155553f
inc ax
sub cx, cx
xor ebx, edx
add edi, edx
lea edx, [ecx + ecx*4 + 0x2439ce3b]
mov edx, dword [ecx + ebp]
cwde
btc ax, ax
adc ecx, 0x54823f29
mov al, byte [ebp + eax*4 - 0x2e2f8]
lea ecx, [ecx + ecx - 0x626a2376]
adc ecx, ecx
adc ebp, 6
imul ecx, ecx
mov byte es:[ecx + edx - 0x3bdb440], al
movzx edx, cx
shr ecx, 0xba
adc ecx, edx
jmp edi
dec esp
add ebp, eax
shl dl, 0xa1