Function at 0x10096470
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x40
mov esi, esp
mov eax, dword [ebp + 8]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], eax
mov eax, dword [0x10146298]
xor eax, ebp
mov dword [esi + 0x3c], eax
mov eax, dword [0x10142494]
or eax, dword [0x10142498]
imul eax, eax, 0x4a48c69d
add eax, 0xd7802766
or eax, 0xb44b32ba
and eax, 0x7ed2ea79
imul eax, eax, 0x2f7d9328
mov ecx, 0x42c2cbd
xor edx, edx
div ecx
add eax, 0x9e0b636
mov ecx, 0x6bc031cb
xor edx, edx
div ecx
xor eax, 0x6e39838
add eax, 0xdb292a71
xor eax, 0x6ad2feef
or eax, 0xe07bd97a
and eax, 0x4590175e
or eax, 0x7db0afe9
add eax, 0x66c1039
add eax, 0xeaf4d4a
xor eax, 0x4cbdfb19
xor eax, 0x123447bc
add eax, 0x529deb67
or eax, 0x811baf42
cmp eax, 0xfb064cb2
jae 0x100968ae
mov eax, dword [0x1014249c]
sub eax, dword [0x101424a0]
mov ecx, 0x1d4ed977
xor edx, edx
div ecx
and eax, 0xef0308f8
imul eax, eax, 0x41592139
xor eax, 0x92e8e257
xor eax, 0x8e70c12e
sub eax, 0x89d4594e
imul eax, eax, 0x58cad318
add eax, 0xd3eb28a1
or eax, 0x216dc893
add eax, 0x901d9778
mov ecx, 0xc94f0e64
xor edx, edx
div ecx
add eax, 0xba3fc978
mov ecx, 0x5c00958a
xor edx, edx
div ecx
add eax, 0x6373aa7d
xor eax, 0xa79b46c8
add eax, 0x17facd4c
sub eax, 0x579adc1f
mov ecx, 0xc66092
xor edx, edx
div ecx
sub eax, 0xb69071e4
mov ecx, 0x372b6e65
xor edx, edx
div ecx
cmp eax, 0xf863dc9
ja 0x10096514
mov eax, dword [0x101424a4]
and eax, dword [0x101424a8]
and eax, 0x59af3ed8
add eax, 0x1951b978
and eax, 0xc85a8f6
or eax, 0x6ae3ab55
or eax, 0x696c0829
and eax, 0x701108c9
and eax, 0x3cc99ae7
mov ecx, 0xbbf493af
xor edx, edx
div ecx
add eax, 0xeea3beb4
imul eax, eax, 0x6fff2f41
xor eax, 0x7741622e
or eax, 0x4074b1d6
xor eax, 0x32a0ae76
xor eax, 0xd4cc9148
imul eax, eax, 0x55a93a04
sub eax, 0x96bcbd89
imul eax, eax, 0xf3744c28
add eax, 0xbe36492c
add eax, 0xcf731dad
xor eax, 0x6bf9f7f
cmp eax, 0x6536486f
jbe 0x100967b0
mov ecx, dword [esi + 0x30]
mov eax, 0x9bf1a95b
mov dword [esi + 0x2c], eax
push eax
mov eax, esp
sub esp, 8
mov edx, esp
and edx, 0xfffffff8
mov dword [esi + 0x28], edx
mov esp, edx
push eax
push eax
mov edx, esp
and edx, 0xfffffff8
mov dword [esi + 0x20], edx
mov esp, edx
mov dword [eax], ecx
call fcn.100e397b
mov ecx, dword [esi + 0x28]
mov edi, eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0x24], edi
mov edi, edx
mov edx, dword [esi + 0x24]
mov dword [eax + 4], edi
mov dword [eax], edx
sub esp, 4
mov dword [esp], eax
call fcn.100e1a00
mov ecx, dword [esi + 0x30]
mov eax, dword [esi + 0x28]
sub esp, 4
mov dword [esp], eax
call fcn.100e1cc0
mov eax, dword [esi + 0x2c]
cmp eax, 0xdc78c529
je 0x10096625
mov eax, dword [0x101424b4]
imul eax, dword [0x101424b8]
sub eax, 0x812e91c8
imul eax, eax, 0x277e95c4
and eax, 0x9d86863d
sub eax, 0xd7750eb8
xor eax, 0xec6cc780
and eax, 0xec511972
and eax, 0x99749c6f
add eax, 0x4720dc12
imul eax, eax, 0x9d20f217
or eax, 0x9eacc155
xor eax, 0xb1a716f3
and eax, 0x4fc5b598
add eax, 0x7200c003
or eax, 0x22576dfc
mov ecx, 0x63413216
xor edx, edx
div ecx
sub eax, 0x85542247
mov ecx, 0x32c46f98
xor edx, edx
div ecx
xor eax, 0xfd8d19c0
or eax, 0x5d87be55
sub eax, 0x672a283d
cmp eax, 0xf51e99bd
ja 0x100968b3
mov eax, dword [0x101424bc]
imul eax, dword [0x101424c0]
add eax, 0xb9dba67f
add eax, 0x554dd12e
sub eax, 0x263cae97
xor eax, 0xbb56dbcd
xor eax, 0xbcaa7926
and eax, 0xfb0123aa
xor eax, 0x60d45177
imul eax, eax, 0x9f61e371
mov ecx, 0xaf1ccaeb
xor edx, edx
div ecx
add eax, 0x6e73bd7a
sub eax, 0x91d3889f
imul eax, eax, 0xb9f4ce0
and eax, 0xf93d8513
xor eax, 0xf98f64c2
or eax, 0x85cf40aa
or eax, 0x8cc81ec6
sub eax, 0x6ee7a72
mov ecx, 0x51e5918d
xor edx, edx
div ecx
xor eax, 0x2623aeae
or eax, 0x1a3629c8
cmp eax, 0x40e366ab
ja 0x100968b3
mov ecx, dword [esi + 0x3c]
xor ecx, ebp
call fcn.100e332f
mov eax, dword [esi + 0x34]
lea esp, [ebp - 8]
pop esi
pop edi
pop ebp
ret
mov eax, dword [0x101424c4]
and eax, dword [0x101424c8]
xor eax, 0x42e6b561
xor eax, 0x5eeccc78
imul eax, eax, 0x16fa1a2a
or eax, 0x273a262d
xor eax, 0x41bbe4b1
imul eax, eax, 0xefd2234d
and eax, 0x42737181
sub eax, 0xee87571
sub eax, 0xb3b1fefd
or eax, 0xb81e6e18
imul eax, eax, 0x84fd1851
and eax, 0x72b7c23c
imul eax, eax, 0xac8a0a43
xor eax, 0x475801
xor eax, 0x708d504
imul eax, eax, 0x593740d0
mov ecx, 0x696545a
xor edx, edx
div ecx
imul eax, eax, 0xec1c040
mov ecx, 0xb3321054
xor edx, edx
div ecx
mov ecx, 0x79219a45
xor edx, edx
div ecx
cmp eax, 0x2e89752a
jae 0x100968b8
mov ecx, dword [esi + 0x30]
mov eax, 0xe3658895
mov dword [esi + 0x1c], eax
push eax
mov eax, esp
sub esp, 8
mov edx, esp
and edx, 0xfffffff8
mov dword [esi + 0x18], edx
mov esp, edx
push eax
push eax
mov edx, esp
and edx, 0xfffffff8
mov dword [esi + 0x10], edx
mov esp, edx
mov dword [eax], ecx
call fcn.100e397b
mov ecx, dword [esi + 0x18]
mov edi, eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x14], edi
mov edi, edx
mov edx, dword [esi + 0x14]
mov dword [eax + 4], edi
mov dword [eax], edx
sub esp, 4
mov dword [esp], eax
call fcn.100e1a00
mov ecx, dword [esi + 0x30]
mov eax, dword [esi + 0x18]
sub esp, 4
mov dword [esp], eax
call fcn.100e1cc0
mov eax, dword [esi + 0x1c]
cmp eax, 0xe763e9a4
je 0x100968b8
jmp 0x10096625
jmp 0x10096514
jmp 0x10096717
mov ecx, dword [esi + 0x30]
push eax
mov eax, esp
sub esp, 8
mov edx, esp
and edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov esp, edx
push eax
push eax
mov edx, esp
and edx, 0xfffffff8
mov dword [esi + 4], edx
mov esp, edx
mov dword [eax], ecx
call fcn.100e397b
mov ecx, dword [esi + 0xc]
mov edi, eax
mov eax, dword [esi + 4]
mov dword [esi + 8], edi
mov edi, edx
mov edx, dword [esi + 8]
mov dword [eax + 4], edi
mov dword [eax], edx
sub esp, 4
mov dword [esp], eax
call fcn.100e1a00
mov ecx, dword [esi + 0x30]
mov eax, dword [esi + 0xc]
sub esp, 4
mov dword [esp], eax
call fcn.100e1cc0
jmp 0x1009683c