Function at 0x1015c430
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1c
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [0x101bd968]
sub eax, dword [0x101bd96c]
xor eax, 0xf4e1c4bc
mov ecx, 0xc90b7638
xor edx, edx
div ecx
sub eax, 0x20c15515
xor eax, 0xcbb028ec
or eax, 0xe90496ba
mov ecx, 0xb4f1350f
xor edx, edx
div ecx
sub eax, 0x25ce105
add eax, 0x123138f1
or eax, 0x96429757
add eax, 0x9aa6c875
mov ecx, 0x4502e179
xor edx, edx
div ecx
or eax, 0x8b977f4b
mov ecx, 0x94ba09fe
xor edx, edx
div ecx
mov ecx, 0x3307a8c4
xor edx, edx
div ecx
or eax, 0xc4e9eb39
xor eax, 0x184a07e6
imul eax, eax, 0xf5607796
xor eax, 0xe19487f
mov ecx, 0xba051a9
xor edx, edx
div ecx
add eax, 0xab82d5f4
xor eax, 0xf2928afe
mov ecx, 0x7319955
xor edx, edx
div ecx
mov ecx, 0x93fad7b7
xor edx, edx
div ecx
sub eax, 0x4d752fc
add eax, 0x6f034be9
mov ecx, 0x328cb598
xor edx, edx
div ecx
sub eax, 0xfcf7789b
xor eax, 0x555e0bba
and eax, 0x74012b2
add eax, 0xf8f815c6
mov ecx, 0x717b249f
xor edx, edx
div ecx
or eax, 0x9e1b1b2e
xor eax, 0xa888cdf8
xor eax, 0x13a51f2e
or eax, 0x6ad1fc64
add eax, 0xf0ebe8fa
and eax, 0x6ac585ae
or eax, 0xb2bbff0c
cmp eax, 0xc7981352
jbe 0x1015c799
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
mov eax, 0x61464fdb
mov dword [ebp - 0x24], eax
push eax
mov eax, esp
push eax
mov ecx, esp
push eax
mov edx, esp
push eax
mov esi, esp
mov dword [eax], edi
mov edi, dword [ebp - 0x18]
mov dword [ecx], edi
mov edi, dword [ebp - 0x10]
mov dword [edx], ebx
mov dword [esi], edi
mov eax, dword [eax]
mov ecx, dword [ecx]
mov edx, dword [edx]
mov esi, dword [esi]
sub esp, 0x14
mov dword [esp], esi
mov dword [esp + 4], 0xffffffff
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.1015cc00
add esp, 0x14
mov ecx, eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], ecx
cmp eax, 0x5e1d4b6b
jbe 0x1015c54e
mov eax, dword [0x101bd978]
and eax, dword [0x101bd97c]
sub eax, 0xf5d4262b
add eax, 0x12b463cf
and eax, 0xfbac9304
xor eax, 0xb37f7e12
or eax, 0x6bc5e5c8
imul eax, eax, 0x35f6d0d8
add eax, 0x8f023cca
xor eax, 0xa4e028fd
mov ecx, 0x8c598a07
xor edx, edx
div ecx
mov ecx, 0xa7b739fd
xor edx, edx
div ecx
xor eax, 0x58d1c904
imul eax, eax, 0xf22df0b3
mov ecx, 0xaec27d83
xor edx, edx
div ecx
add eax, 0x51a358ec
imul eax, eax, 0x47cbaa27
and eax, 0x1802204b
or eax, 0xe66c2820
and eax, 0x611943f3
or eax, 0x451d380f
and eax, 0x9969ee59
imul eax, eax, 0x66ea1870
or eax, 0xf261e98c
or eax, 0x694317f9
or eax, 0xa288d81a
sub eax, 0x26225f28
or eax, 0xe951bc7
and eax, 0x8baae5a3
imul eax, eax, 0x22d2d66f
or eax, 0xc4e21607
add eax, 0x886f0257
sub eax, 0xabf24770
add eax, 0x37c52e34
or eax, 0xd458cfbf
or eax, 0x32917914
mov ecx, 0x87dfb10
xor edx, edx
div ecx
imul eax, eax, 0x19d385a8
and eax, 0x91d29f7
xor eax, 0x7aa15c6f
cmp eax, 0x910173d8
je 0x1015c9a0
mov eax, dword [0x101bd980]
xor eax, dword [0x101bd984]
add eax, 0x9c9ae373
imul eax, eax, 0x2dc8af22
add eax, 0x7eb74ca9
and eax, 0x4b13f3e0
sub eax, 0xe26ed6fc
mov ecx, 0x74414fa5
xor edx, edx
div ecx
xor eax, 0x8eafeea8
and eax, 0x6a195b5f
add eax, 0x2a246b06
xor eax, 0xab8fb6ea
xor eax, 0x2fa00358
mov ecx, 0xfa952263
xor edx, edx
div ecx
sub eax, 0x7848427
sub eax, 0xd17ddf3e
imul eax, eax, 0x59324412
and eax, 0x370bcd98
imul eax, eax, 0xe89e7012
mov ecx, 0xfdb2dc54
xor edx, edx
div ecx
add eax, 0x29d4f840
xor eax, 0x5c430d23
add eax, 0x8fa17906
sub eax, 0x88f09fc8
sub eax, 0x5a45a781
sub eax, 0xfb694c89
mov ecx, 0x7e9d2f1d
xor edx, edx
div ecx
imul eax, eax, 0xf7b3285c
or eax, 0xb68ca167
sub eax, 0xd433f605
or eax, 0xf29216fc
imul eax, eax, 0x98574943
xor eax, 0x8f63e4d0
mov ecx, 0xbca8c2fc
xor edx, edx
div ecx
mov ecx, 0x69288aca
xor edx, edx
div ecx
and eax, 0x1d057f14
and eax, 0x7b5e001c
sub eax, 0x3f22e382
add eax, 0xdf057b02
xor eax, 0x7c81d9b1
cmp eax, 0x23c42a70
jbe 0x1015c69d
mov eax, dword [ebp - 0x20]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [0x101bd988]
xor edx, edx
div dword [0x101bd98c]
mov ecx, 0x93c85a87
xor edx, edx
div ecx
or eax, 0x2a81b5f1
sub eax, 0x6c73d669
xor eax, 0x46896d69
or eax, 0xf5613806
imul eax, eax, 0x884239f8
xor eax, 0x858fc1a1
imul eax, eax, 0x97008669
and eax, 0x2a720f6e
or eax, 0x847aeb76
sub eax, 0x987a64ef
xor eax, 0xc16b7fc2
mov ecx, 0x79b2afa3
xor edx, edx
div ecx
xor eax, 0xec92bf3a
add eax, 0x16a308dd
sub eax, 0xca420f33
and eax, 0x8392821
imul eax, eax, 0xb41bc064
add eax, 0xc6374700
or eax, 0x29a3be0d
add eax, 0x56df652d
or eax, 0x1ee76b56
or eax, 0x14e06661
mov ecx, 0x6e8ec66a
xor edx, edx
div ecx
or eax, 0x3ed20208
mov ecx, 0xbfde70f3
xor edx, edx
div ecx
sub eax, 0xd52e260b
add eax, 0x66f2c3a2
xor eax, 0x9ff9bc7e
xor eax, 0x8b81128
mov ecx, 0xba5f2eb9
xor edx, edx
div ecx
and eax, 0x52d3c10a
add eax, 0x32901472
and eax, 0xe800a8c
or eax, 0xda1fa9ae
or eax, 0x318b1004
xor eax, 0xa388dc32
imul eax, eax, 0xff48bcc3
cmp eax, 0x54baab33
ja 0x1015ca69
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
mov eax, 0x79f3c1ef
mov dword [ebp - 0x28], eax
cmpsb byte [esi], byte es:[edi]
pop ds
outsb dx, byte [esi]
fidiv word [eax - 0x6d]
out dx, al
test al, 0xcb
or byte [edx*8 - 0x18b57390], 0x5a
mov bh, 0x97
or byte [ecx], cl
push esi
push cs
inc esp
invalid
stc
adc dword [edi], edx
push ebp
pushfd
mov edi, 0x21c798fe
aad 0x9e
sar dword [edx + edi*2], cl
cmc
hlt
scasd eax, dword es:[edi]
dec ecx
jle 0x1015c918
dec eax
mov ah, byte [ecx]
fsub st(5), st(0)
popfd
push eax
mov eax, esp
push eax
mov ecx, esp
push eax
mov edx, esp
push eax
mov esi, esp
mov dword [eax], edi
mov edi, dword [ebp - 0x18]
mov dword [ecx], edi
mov edi, dword [ebp - 0x10]
mov dword [edx], ebx
mov dword [esi], edi
mov eax, dword [eax]
mov ecx, dword [ecx]
mov edx, dword [edx]
mov esi, dword [esi]
sub esp, 0x14
mov dword [esp], esi
mov dword [esp + 4], 0xffffffff
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.1015cc00
add esp, 0x14
mov eax, dword [ebp - 0x28]
cmp eax, 0x802201a3
je 0x1015ca69
into
add byte [eax], al
add cl, ch
scasb al, byte es:[edi]
sti
invalid
jmp 0x1015c54e
mov bl, 0x66
in al, dx
cld
cmpsd dword [esi], dword es:[edi]
dec edx
mov ebp, fs
insd dword es:[edi], dx
push ebx
dec ebx
sub byte [esi - 0x26], cl
into
loop 0x1015c961
cli
loop 0x1015ca03
sub dl, bh
jl 0x1015c9d8
push ss
jbe 0x1015c93e
xor byte [esi], dh
adc al, 0x73
sbb ebx, dword [edx + ebp*4]
dec ebp
push ss
out dx, eax
or dword [ebp - 0x70], esi
mov dword [ebx + edi*4 - 0x19], edi
xchg ecx, eax
sar dword [ebx - 0x201cdf24], 0xbb
push es
int3
in al, dx
arpl word [esi + 0x32f23851], bx
fld xword [ecx + 0x1e]
and byte [edi - 0x48d29409], dl
dec ebp
cmp al, 0x6b
mov eax, dword [0x80971a59]
jo 0x1015ca4d
dec ecx
je 0x1015ca5d
out dx, al
and byte [ebx + 0x5463bc3f], 0x6a
mov ss, word [ecx - 0x1f2e6d19]
sahf
jge 0x1015c997
pop ss
inc ecx
fucom st(2)
dec esi
mov dh, cl
out 0xb8, al
loopne 0x1015ca7f
or byte [esp + edx*4 - 0x69], ch
sahf
push esi
in eax, dx
sti
aaa
mov esp, 0x63c841c1
mov edx, 0xdd64e7dd
jb 0x1015c9e8
sbb byte [esi + eax*2 - 0x40318f05], 0x73
retf 0xfbc2
push edi
clc
clc
inc esp
cmp dword [ebx + 0x56], ecx
test eax, 0xb7f0ed57
pop edx
mov dword [0x6b48cc5c], eax
sub byte [0xe9514f05], 0x34
cld
dec eax
imul eax, dword [edx + 0x514f052d], 0xffffffe9
xor al, 0xfc
invalid
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
sub byte [edx + 0x3f], ah
adc esp, ebp
mov edi, 0x18a533b2
loop 0x1015cae7
dec esp
pop ss
sub al, 9
fild dword [edx - 0x36]
lodsb al, byte [esi]
invalid
or ebx, ebx
inc edx
retf 0xc6ac
mov dword [0xcf561909], eax
imul edx, dword [ebx + 0x526f925f], 0x35
or al, 0x6a
mov bh, 0xb2
sbb eax, 0xb0cc6c44
invalid
aaa
pop esp
push 0x552c5114
and dword [ecx - 0x7446784e], 0x3dcbacef
mov ecx, 0xde6e1fa6
jo 0x1015ca94
out dx, al
test al, 0xcb
or byte [edx*8 - 0x18b57390], 0x5a
mov bh, 0x97
or byte [ecx], cl
push esi
push cs
inc esp
invalid