Function at 0x100ad470
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1c
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [0x1014b688]
or eax, dword [0x1014b68c]
or eax, 0x59e419a4
xor eax, 0xd693ba5a
xor eax, 0xed5bcc79
mov ecx, 0x883c2b74
xor edx, edx
div ecx
sub eax, 0x93f4fb84
xor eax, 0x31d7c9f
imul eax, eax, 0x357a32b4
and eax, 0x676437f2
or eax, 0x8a1f80ac
imul eax, eax, 0x72241898
xor eax, 0xb054770b
xor eax, 0xe4c27313
add eax, 0x2dbeeab6
mov ecx, 0xb5ec726b
xor edx, edx
div ecx
sub eax, 0xfdb8c0a0
add eax, 0x22798e16
add eax, 0x5f853e7c
xor eax, 0x203f3194
sub eax, 0x671756b1
sub eax, 0xc92bef44
mov ecx, 0xbf605a1
xor edx, edx
div ecx
and eax, 0x4a3f6771
imul eax, eax, 0x704b0bbd
sub eax, 0xad30e2db
or eax, 0x636e8da
sub eax, 0x6ab49a65
sub eax, 0x66876cd1
add eax, 0x4150f752
xor eax, 0x39fe8e15
mov ecx, 0xda35b4cd
xor edx, edx
div ecx
and eax, 0xfde5946c
or eax, 0x6108e86b
sub eax, 0x67812264
cmp eax, 0xc715f165
je 0x100ad9aa
mov eax, dword [0x1014b690]
and eax, dword [0x1014b694]
sub eax, 0xac331211
or eax, 0xe87fb081
and eax, 0xa90fe93e
and eax, 0xc80c40ad
imul eax, eax, 0x4c2c08f7
sub eax, 0x2731cda6
mov ecx, 0x8d1ccf5
xor edx, edx
div ecx
and eax, 0xcfeb4f28
xor eax, 0x2222e7b7
mov ecx, 0xace4649e
xor edx, edx
div ecx
mov ecx, 0x9598b078
xor edx, edx
div ecx
and eax, 0xa8b8555a
and eax, 0x69ea942a
xor eax, 0xb593c2b1
sub eax, 0xde491509
add eax, 0x8243c18a
or eax, 0x5a26030c
xor eax, 0xadc9096c
and eax, 0xea4b25ec
and eax, 0x44b1b8fa
sub eax, 0xce9c9b6c
imul eax, eax, 0x8da3ade
add eax, 0x4a7439b1
or eax, 0x534870b0
sub eax, 0xb403706a
sub eax, 0xa8ef1d72
add eax, 0x88b8cbc
mov ecx, 0x41c6295
xor edx, edx
div ecx
add eax, 0x62e872d1
xor eax, 0x9b20ed8c
sub eax, 0x26b8d310
mov ecx, 0x4fa94083
xor edx, edx
div ecx
sub eax, 0x7057443b
cmp eax, 0x71168422
je 0x100adace
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
mov eax, dword [0x1014b698]
mov ecx, dword [0x1014b69c]
imul eax, ecx
xor eax, 0x110084a0
and eax, 0xbb1884b3
imul eax, eax, 0x543eeeb2
add eax, 0xc0926635
xor eax, 0xa14b4102
imul eax, eax, 0xb8476810
and eax, 0xf6ae1540
add eax, 0x1d3ac6e2
and eax, 0xe5c8c3c0
mov ecx, 0x50dedbd9
mul ecx
mov eax, edx
shr eax, 0x1e
or eax, 0x301f0f2
imul eax, eax, 0xbabf3638
or eax, 0x19a2224
and eax, 0xd9a6b24
imul eax, eax, 0x4113258a
xor eax, 0x68323068
or eax, 0x96c4cb83
imul eax, eax, 0x44c74c7c
add eax, 0x3832730f
or eax, 0x614d20d0
add eax, 0x65bac9a0
mov dword [ebp - 0x24], eax
mov ecx, 0x3d9244d3
mul ecx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1f
xor eax, 0x1eb752d3
add eax, 0x33b17f49
or eax, 0xce24a3ba
imul eax, eax, 0x5275db48
mov dword [ebp - 0x20], eax
push eax
mov ecx, esp
push eax
mov esi, esp
push eax
mov edx, esp
push eax
mov eax, esp
mov dword [ecx], edi
mov edi, dword [ebp - 0x18]
mov dword [esi], ebx
mov dword [edx], edi
mov edx, dword [edx]
mov edx, dword [edx + 0x10]
sub edx, dword [esi]
mov dword [eax], edx
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10098c40
add esp, 8
mov ecx, eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ecx]
mov dword [ebp - 0x1c], ecx
cmp eax, 0x52b9e109
ja 0x100adace
mov eax, dword [0x1014b6a0]
xor edx, edx
div dword [0x1014b6a4]
xor eax, 0xf60c9d48
sub eax, 0x60406cc8
and eax, 0x9f27de16
and eax, 0x5328f230
add eax, 0x54cae9ad
imul eax, eax, 0x3ecf81b4
xor eax, 0x1292c327
mov ecx, 0x86a11c4b
xor edx, edx
div ecx
xor eax, 0x88d3b4f4
mov ecx, 0x1facd19
xor edx, edx
div ecx
imul eax, eax, 0xa99be39
or eax, 0x2b56c506
mov ecx, 0xe9a77762
xor edx, edx
div ecx
or eax, 0xaad2b935
add eax, 0xd838e565
sub eax, 0xcb653ed9
or eax, 0x1cc0b297
or eax, 0x179ebae4
xor eax, 0x3edcc844
or eax, 0xf40e4d3
xor eax, 0x2eac35f
sub eax, 0xd7183544
and eax, 0x7ef8fc81
xor eax, 0xdffe3b06
and eax, 0xd08f87b2
xor eax, 0xbdab530a
mov ecx, 0xd350b7e1
xor edx, edx
div ecx
sub eax, 0xba994687
add eax, 0xac27e615
sub eax, 0x7e1b9219
imul eax, eax, 0xb91fc852
and eax, 0x146d8aac
and eax, 0xc4d39617
cmp eax, 0xcfb65e0
je 0x100ad556
mov eax, dword [0x1014b6a8]
and eax, dword [0x1014b6ac]
or eax, 0x78218802
mov ecx, 0xdce6708a
xor edx, edx
div ecx
add eax, 0xbba6716e
xor eax, 0x47feb982
add eax, 0xe5997637
imul eax, eax, 0x96405318
add eax, 0x241178d2
or eax, 0x3cb34837
and eax, 0x4e5d9699
add eax, 0x238fec53
imul eax, eax, 0xcdd86d9b
xor eax, 0xd05c4b70
mov ecx, 0x2bacc12f
xor edx, edx
div ecx
xor eax, 0xc2b3133d
mov ecx, 0xfa64c0b0
xor edx, edx
div ecx
or eax, 0xdfde75a1
add eax, 0xde9e46c3
and eax, 0x8728885a
xor eax, 0x53f67c9e
add eax, 0xfb13d6fb
xor eax, 0xe3fa59ed
mov ecx, 0x635424aa
xor edx, edx
div ecx
and eax, 0xd267a141
and eax, 0x7d87478d
imul eax, eax, 0x599d02b2
xor eax, 0xb5f33970
sub eax, 0x3a54de68
add eax, 0xbd89b147
or eax, 0x34bece
mov ecx, 0x70b4ff14
xor edx, edx
div ecx
add eax, 0xb0030c2e
mov ecx, 0x6ce93792
xor edx, edx
div ecx
add eax, 0xa4695914
cmp eax, 0x6d51ceff
jbe 0x100adb0b
mov eax, dword [0x1014b6b0]
add eax, dword [0x1014b6b4]
imul eax, eax, 0x89c8ab8d
xor eax, 0xc2ed57e6
xor eax, 0x7730b731
and eax, 0x4fb81317
xor eax, 0x3970a91
add eax, 0xc74cb4a6
xor eax, 0xb5374ff1
mov ecx, 0x9b001b9a
xor edx, edx
div ecx
mov ecx, 0xee2b7737
xor edx, edx
div ecx
sub eax, 0x86c8c51
and eax, 0xdf817d38
add eax, 0xdcb2830f
imul eax, eax, 0xc4aa9552
xor eax, 0x3a7300f0
imul eax, eax, 0x1c6f596a
imul eax, eax, 0xfe3841b3
add eax, 0x4648a702
xor eax, 0x27ae2fc4
sub eax, 0xafb458d2
add eax, 0xf41381a9
mov ecx, 0x6d4425b4
xor edx, edx
div ecx
and eax, 0xd1475ef2
xor eax, 0x202c908c
add eax, 0x84068da8
and eax, 0xfd67d004
or eax, 0x911efb6d
or eax, 0x76e563e9
and eax, 0xac22be0
add eax, 0x1dec2a23
imul eax, eax, 0x4baa298d
mov ecx, 0x3fef51fe
xor edx, edx
div ecx
mov ecx, 0x191b0b34
xor edx, edx
div ecx
add eax, 0x6d44b0f
cmp eax, 0x4f015eb8
je 0x100ad8c9
mov eax, dword [ebp - 0x1c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov eax, dword [0x1014b6b8]
xor edx, edx
div dword [0x1014b6bc]
imul eax, eax, 0x45cb5363
xor eax, 0xe5546e30
or eax, 0xec09fd5d
xor eax, 0x6057d52c
and eax, 0x32a207b
and eax, 0x59afac9d
xor eax, 0x6f2364e2
sub eax, 0xcec97f91
or eax, 0xd1f868d7
or eax, 0x5567ac5a
and eax, 0x396e6844
imul eax, eax, 0x6542642a
mov ecx, 0x202fec56
xor edx, edx
div ecx
add eax, 0x38358a39
imul eax, eax, 0x2858b289
mov ecx, 0xf883aeff
xor edx, edx
div ecx
or eax, 0x214cff6b
mov ecx, 0xb4f9aa65
xor edx, edx
div ecx
add eax, 0x56555772
xor eax, 0x307486ef
xor eax, 0xf3299ef4
and eax, 0xfe2e48b1
mov ecx, 0x4f94d41e
xor edx, edx
div ecx
and eax, 0xca9c4f78
add eax, 0xd0e5e699
sub eax, 0x37d45328
imul eax, eax, 0x3a653aab
sub eax, 0xf6eaced
or eax, 0xa5964bfd
or eax, 0xff5be78f
add eax, 0xb313ce2e
xor eax, 0xc4a47c6b
xor eax, 0x662fac62
cmp eax, 0x14a4407d
jae 0x100adb10
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
mov eax, 0xd225b843
mov dword [ebp - 0x28], eax
push eax
mov ecx, esp
push eax
mov esi, esp
push eax
mov edx, esp
push eax
mov eax, esp
mov dword [ecx], edi
mov edi, dword [ebp - 0x18]
mov dword [esi], ebx
mov dword [edx], edi
mov edx, dword [edx]
mov edx, dword [edx + 0x10]
mov esi, dword [esi]
sub edx, esi
mov dword [eax], edx
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10098c40
add esp, 8
mov eax, dword [ebp - 0x28]
cmp eax, 0x96484477
jb 0x100adb10
jmp 0x100ad556
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
push eax
mov ecx, esp
push eax
mov esi, esp
push eax
mov edx, esp
push eax
mov eax, esp
mov dword [ecx], edi
mov edi, dword [ebp - 0x18]
mov dword [esi], ebx
mov dword [edx], edi
mov edx, dword [edx]
mov edx, dword [edx + 0x10]
mov esi, dword [esi]
sub edx, esi
mov dword [eax], edx
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10098c40
add esp, 8
jmp 0x100ad627
jmp 0x100ad8c9
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
push eax
mov ecx, esp
push eax
mov esi, esp
push eax
mov edx, esp
push eax
mov eax, esp
mov dword [ecx], edi
mov edi, dword [ebp - 0x18]
mov dword [esi], ebx
mov dword [edx], edi
mov edx, dword [edx]
mov edx, dword [edx + 0x10]
mov esi, dword [esi]
sub edx, esi
mov dword [eax], edx
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10098c40
add esp, 8
jmp 0x100ada7b