Function at 0x10017e20
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc80
mov eax, dword [0x101165b0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0xc60], eax
mov eax, dword [ebp + 0x1c]
push esi
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0xc5c], edx
mov edx, dword [sym.cis_cc_3.2.dll_rijndael]
mov dword [ebp - 0xc40], eax
mov eax, dword [0x10110e3c]
mov dword [ebp - 0xc68], edx
mov dword [ebp - 0xc58], eax
test esi, esi
jne 0x10017e82
or eax, 0xffffffff
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1008600b
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 4]
push ebx
mov ebx, dword [ebp + 0x10]
push edi
mov eax, ebx
shr eax, 1
mov edi, ebx
sub edi, eax
mov dword [ebp - 0xc24], ecx
lea ecx, [ecx + eax*4]
mov dword [ebp - 0xc50], edx
fild dword [ebp - 0xc50]
mov dword [ebp - 0xc20], edx
mov dword [ebp - 0xc4c], eax
mov dword [ebp - 0xc64], edi
mov dword [ebp - 0xc38], eax
mov dword [ebp - 0xc34], ecx
mov dword [ebp - 0xc30], edi
test edx, edx
jns 0x10017ed5
fadd qword [0x100aac28]
call fcn.10087230
fstp qword [ebp - 0xc54]
fld qword [0x100aac18]
call fcn.10087230
fdivr qword [ebp - 0xc54]
mov dword [ebp - 0xc50], edi
fild dword [ebp - 0xc50]
test edi, edi
jns 0x10017f07
fadd qword [0x100aac28]
fmulp st(1)
sub esp, 8
fstp qword [esp]
call fcn.10087040
fmul qword [0x100aac08]
fstp qword [esp]
call fcn.10087040
fnstcw word [ebp - 0xc2a]
add esp, 8
movzx eax, word [ebp - 0xc2a]
or eax, 0xc00
mov dword [ebp - 0xc3c], eax
fldcw word [ebp - 0xc3c]
fistp qword [ebp - 0xc54]
mov eax, dword [ebp - 0xc54]
mov ecx, eax
shr ecx, 2
fldcw word [ebp - 0xc2a]
mov dword [ebp - 0xc2c], eax
test al, 3
je 0x10017f65
inc ecx
lea edx, [ecx*4 + 4]
mov cl, byte [ebp - 0xc4c]
add esi, 0x14
mov dword [ebp - 0xc44], edx
mov byte [esi + 7], cl
mov edx, ebx
shr edx, 0x18
mov byte [esi + 8], dl
mov byte [esi + 0xb], bl
mov ecx, ebx
shr ecx, 0x10
mov byte [esi + 9], cl
mov edx, ebx
mov ebx, dword [ebp + 0x20]
shr edx, 8
mov byte [esi + 0xa], dl
mov ecx, ebx
shr ecx, 0x18
mov byte [esi + 0xc], cl
mov edx, ebx
shr edx, 0x10
mov byte [esi + 0xd], dl
mov ecx, ebx
shr ecx, 8
mov byte [esi + 0xe], cl
mov ecx, dword [ebp - 0xc40]
mov byte [esi + 0xf], bl
mov dword [ebp - 0xc74], esi
or esi, 0xffffffff
sub esi, eax
sub esi, ebx
and esi, 0xf
lea edx, [esi + eax]
lea eax, [edx + ebx + 1]
push ebx
push ecx
lea edx, [ebp - 0x804]
push edx
mov dword [ebp - 0xc70], esi
mov dword [ebp - 0xc6c], eax
call fcn.10086490
or ecx, 0xffffffff
sub ecx, dword [ebp - 0xc2c]
add esp, 0xc
sub ecx, ebx
and ecx, 0xf
lea eax, [ebp + ebx - 0x804]
add ecx, ebx
mov dword [ebp - 0xc40], 0
mov dword [ebp - 0xc78], eax
mov dword [ebp - 0xc80], ecx
mov dword [ebp - 0xc3c], 9
jmp 0x1001803c
mov edi, dword [ebp - 0xc30]
mov esi, dword [ebp - 0xc70]
mov ebx, dword [ebp + 0x24]
test ebx, ebx
je 0x10018051
mov edx, dword [ebp - 0xc3c]
mov dword [ebp - 0xc48], edx
jmp 0x1001805d
mov eax, dword [ebp - 0xc40]
mov dword [ebp - 0xc48], eax
mov ecx, dword [ebp - 0xc78]
push esi
push 0
push ecx
call fcn.10086410
mov esi, dword [ebp - 0xc80]
mov dl, byte [ebp - 0xc48]
xor eax, eax
mov byte [ebp + esi - 0x804], dl
add esp, 0xc
inc esi
mov dword [ebp - 0xa10], eax
cmp ebx, eax
je 0x100180d9
mov edi, dword [ebp - 0xc38]
xor ebx, ebx
test edi, edi
je 0x10018117
jmp 0x100180a0
mov eax, dword [ebp - 0xc20]
push eax
lea ecx, [ebp - 0xa10]
push ecx
mov edx, ecx
push edx
call sym.cis_cc_3.2.dll_MINT_MultInteger
mov eax, dword [ebp - 0xc24]
mov ecx, dword [eax + ebx*4]
push ecx
lea edx, [ebp - 0xa10]
push edx
mov eax, edx
push eax
call sym.cis_cc_3.2.dll_MINT_AddInteger
inc ebx
add esp, 0x18
cmp ebx, edi
jb 0x100180a0
jmp 0x10018117
xor ebx, ebx
cmp edi, eax
jbe 0x10018117
nop
mov ecx, dword [ebp - 0xc20]
push ecx
lea edx, [ebp - 0xa10]
push edx
mov eax, edx
push eax
call sym.cis_cc_3.2.dll_MINT_MultInteger
mov ecx, dword [ebp - 0xc34]
mov edx, dword [ecx + ebx*4]
push edx
lea eax, [ebp - 0xa10]
push eax
mov ecx, eax
push ecx
call sym.cis_cc_3.2.dll_MINT_AddInteger
inc ebx
add esp, 0x18
cmp ebx, edi
jb 0x100180e0
lea edx, [ebp - 0xa10]
push edx
lea eax, [ebp - 0xc28]
push eax
lea edi, [ebp + esi - 0x804]
push edi
call sym.cis_cc_3.2.dll_MINT_WriteInByteArray
mov ebx, dword [ebp - 0xc28]
add esp, 0xc
cmp ebx, dword [ebp - 0xc2c]
jae 0x10018182
push ebx
lea ecx, [ebp - 0x404]
push edi
push ecx
call fcn.10086490
mov edx, dword [ebp - 0xc2c]
sub edx, ebx
push edx
push 0
push edi
call fcn.10086410
sub esi, ebx
add esi, dword [ebp - 0xc2c]
push ebx
lea eax, [ebp - 0x404]
push eax
lea ecx, [ebp + esi - 0x804]
push ecx
call fcn.10086490
add esp, 0x24
mov edi, dword [ebp - 0xc68]
mov edx, dword [ebp - 0xc74]
push edi
push edx
lea eax, [ebp - 0x404]
push eax
call fcn.10086490
mov ebx, dword [ebp - 0xc5c]
mov ecx, dword [ebx + 0x28]
push ecx
lea edx, [ebp - 0x404]
push edx
call dword [ebp - 0xc58]
mov esi, dword [ebp - 0xc6c]
xor ecx, ecx
add esp, 0x14
mov dword [ebp - 0xc28], ecx
test esi, esi
je 0x1001820a
xor eax, eax
test edi, edi
je 0x100181e4
lea ecx, [ebp + ecx - 0x804]
mov dl, byte [ecx + eax]
xor byte [ebp + eax - 0x404], dl
inc eax
cmp eax, edi
jb 0x100181d5
mov eax, dword [ebx + 0x28]
push eax
lea ecx, [ebp - 0x404]
push ecx
call dword [ebp - 0xc58]
mov ecx, dword [ebp - 0xc28]
add ecx, edi
add esp, 8
mov dword [ebp - 0xc28], ecx
cmp ecx, esi
jb 0x100181c8
mov esi, edi
mov dword [ebp - 0xc28], esi
cmp edi, dword [ebp - 0xc44]
jae 0x1001826e
lea ebx, [ebx]
push edi
lea edx, [ebp - 0x404]
push edx
lea ebx, [ebp + esi - 0x404]
push ebx
call fcn.10086490
xor edx, edx
mov eax, esi
div edi
lea ecx, [ebp + esi - 0x3f5]
xor byte [ecx], al
mov eax, dword [ebp - 0xc5c]
mov ecx, dword [eax + 0x28]
push ecx
push ebx
call dword [ebp - 0xc58]
mov esi, dword [ebp - 0xc28]
add esi, edi
add esp, 0x14
mov dword [ebp - 0xc28], esi
cmp esi, dword [ebp - 0xc44]
jb 0x10018220
mov edx, dword [ebp - 0xc44]
push edx
lea eax, [ebp - 0x404]
push eax
lea ecx, [ebp - 0xa10]
push ecx
call sym.cis_cc_3.2.dll_MINT_SetByByteArray
mov edi, dword [ebp - 0xc64]
add esp, 0xc
test byte [ebp - 0xc48], 1
jne 0x100182a0
mov edi, dword [ebp - 0xc4c]
xor esi, esi
mov dword [ebp - 0xc1c], esi
cmp dword [ebp + 0x24], esi
je 0x10018402
mov ebx, dword [ebp - 0xc30]
test ebx, ebx
je 0x100182f7
jmp 0x100182c0
mov edx, dword [ebp - 0xc20]
push edx
lea eax, [ebp - 0xc1c]
push eax
mov ecx, eax
push ecx
call sym.cis_cc_3.2.dll_MINT_MultInteger
mov edx, dword [ebp - 0xc34]
mov eax, dword [edx + esi*4]
push eax
lea ecx, [ebp - 0xc1c]
push ecx
mov edx, ecx
push edx
call sym.cis_cc_3.2.dll_MINT_AddInteger
inc esi
add esp, 0x18
cmp esi, ebx
jb 0x100182c0
lea ecx, [ebp - 0xa10]
push ecx
lea edx, [ebp - 0xc1c]
push edx
call sym.cis_cc_3.2.dll_MINT_Compare
add esp, 8
lea edx, [ebp - 0xa10]
test eax, eax
mov eax, edx
push eax
lea ecx, [ebp - 0xc1c]
push ecx
push edx
jns 0x10018596
call sym.cis_cc_3.2.dll_MINT_Sub
lea eax, [ebp - 0xc1c]
push 1
push eax
call sym.cis_cc_3.2.dll_MINT_SetByInteger
add esp, 0x14
test edi, edi
je 0x1001835e
mov esi, edi
mov ecx, dword [ebp - 0xc20]
push ecx
lea edx, [ebp - 0xc1c]
push edx
mov eax, edx
push eax
call sym.cis_cc_3.2.dll_MINT_MultInteger
add esp, 0xc
dec esi
jne 0x10018342
lea ecx, [ebp - 0xc1c]
push ecx
lea edx, [ebp - 0xa10]
push edx
call sym.cis_cc_3.2.dll_MINT_ModClassic
lea eax, [ebp - 0xa10]
push eax
lea ecx, [ebp - 0xc1c]
push ecx
mov edx, eax
push edx
call sym.cis_cc_3.2.dll_MINT_Sub
add esp, 0x14
mov ebx, dword [ebp - 0xc34]
mov eax, dword [ebp - 0xc30]
mov ecx, dword [ebp - 0xc24]
mov edx, dword [ebp - 0xc38]
lea esi, [edi - 1]
mov dword [ebp - 0xc34], ecx
mov dword [ebp - 0xc30], edx
mov dword [ebp - 0xc24], ebx
mov dword [ebp - 0xc38], eax
test esi, esi
js 0x1001851d
jmp 0x100183d0
mov eax, dword [ebp - 0xc20]
push eax
lea ecx, [ebp - 0xa10]
push ecx
lea edx, [ebp - 0xc7c]
push edx
mov eax, ecx
push eax
call sym.cis_cc_3.2.dll_MINT_DivInteger
mov ecx, dword [ebp - 0xc7c]
add esp, 0x10
dec esi
mov dword [ebx + esi*4 + 4], ecx
jns 0x100183d0
jmp 0x1001851d
mov ebx, dword [ebp - 0xc38]
test ebx, ebx
je 0x10018447
lea esp, [esp]
mov eax, dword [ebp - 0xc20]
push eax
lea ecx, [ebp - 0xc1c]
push ecx
mov edx, ecx
push edx
call sym.cis_cc_3.2.dll_MINT_MultInteger
mov eax, dword [ebp - 0xc24]
mov ecx, dword [eax + esi*4]
push ecx
lea edx, [ebp - 0xc1c]
push edx
mov eax, edx
push eax
call sym.cis_cc_3.2.dll_MINT_AddInteger
inc esi
add esp, 0x18
cmp esi, ebx
jb 0x10018410
lea eax, [ebp - 0xa10]
push eax
lea ecx, [ebp - 0xc1c]
push ecx
mov edx, eax
push edx
call sym.cis_cc_3.2.dll_MINT_Add
lea eax, [ebp - 0xc1c]
push 1
push eax
call sym.cis_cc_3.2.dll_MINT_SetByInteger
add esp, 0x14
test edi, edi
je 0x1001849c
mov esi, edi
jmp 0x10018480
mov ecx, dword [ebp - 0xc20]
push ecx
lea edx, [ebp - 0xc1c]
push edx
mov eax, edx
push eax
call sym.cis_cc_3.2.dll_MINT_MultInteger
add esp, 0xc
dec esi
jne 0x10018480
lea ecx, [ebp - 0xc1c]
push ecx
lea edx, [ebp - 0xa10]
push edx
call sym.cis_cc_3.2.dll_MINT_ModClassic
mov ebx, dword [ebp - 0xc24]
mov eax, dword [ebp - 0xc38]
mov edx, dword [ebp - 0xc34]
mov ecx, dword [ebp - 0xc30]
lea esi, [edi - 1]
add esp, 8
mov dword [ebp - 0xc24], edx
mov dword [ebp - 0xc38], ecx
mov dword [ebp - 0xc34], ebx
mov dword [ebp - 0xc30], eax
test esi, esi
js 0x1001851d
lea esp, [esp]
mov edx, dword [ebp - 0xc20]
push edx
lea eax, [ebp - 0xa10]
push eax
lea ecx, [ebp - 0xc50]
push ecx
mov edx, eax
push edx
call sym.cis_cc_3.2.dll_MINT_DivInteger
mov eax, dword [ebp - 0xc50]
add esp, 0x10
dec esi
mov dword [ebx + esi*4 + 4], eax
jns 0x100184f0
mov eax, dword [ebp - 0xc3c]
inc dword [ebp - 0xc40]
dec eax
mov dword [ebp - 0xc3c], eax
cmp eax, 0xffffffff
jg 0x10018030
mov edi, dword [ebp - 0xc4c]
mov esi, dword [ebp - 0xc60]
test edi, edi
je 0x10018560
mov ecx, dword [ebp - 0xc24]
mov eax, esi
sub ecx, esi
mov edx, edi
mov ebx, dword [ecx + eax]
mov dword [eax], ebx
add eax, 4
dec edx
jne 0x10018555
mov edx, dword [ebp - 0xc64]
xor eax, eax
test edx, edx
je 0x10018583
lea ecx, [esi + edi*4]
nop
mov esi, dword [ebp - 0xc34]
mov esi, dword [esi + eax*4]
mov dword [ecx], esi
inc eax
add ecx, 4
cmp eax, edx
jb 0x10018570
mov ecx, dword [ebp - 4]
pop edi
pop ebx
xor ecx, ebp
xor eax, eax
pop esi
call fcn.1008600b
mov esp, ebp
pop ebp
ret
call sym.cis_cc_3.2.dll_MINT_Sub
lea eax, [ebp - 0xc1c]
push 1
push eax
call sym.cis_cc_3.2.dll_MINT_SetByInteger
add esp, 0x14
test edi, edi
je 0x100185ce
mov esi, edi
mov ecx, dword [ebp - 0xc20]
push ecx
lea edx, [ebp - 0xc1c]
push edx
mov eax, edx
push eax
call sym.cis_cc_3.2.dll_MINT_MultInteger
add esp, 0xc
dec esi
jne 0x100185b2
lea ecx, [ebp - 0xc1c]
push ecx
lea edx, [ebp - 0xa10]
push edx
call sym.cis_cc_3.2.dll_MINT_ModClassic
add esp, 8
jmp 0x1001838a