Function at 0x10088dc0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x40
mov esi, esp
mov eax, dword [ebp + 8]
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x34], eax
mov eax, dword [0x101835f0]
xor eax, ebp
mov dword [esi + 0x38], eax
mov eax, dword [0x1018096c]
and eax, dword [0x10180970]
xor eax, 0x3e877ff0
and eax, 0xcc3868d4
sub eax, 0x51d28d3a
add eax, 0x67350de9
mov ecx, 0x1ac3e1d9
xor edx, edx
div ecx
xor eax, 0x330e5906
xor eax, 0x1167ad34
xor eax, 0xd5e1824d
imul eax, eax, 0x3ba7763a
mov ecx, 0xf4014c18
xor edx, edx
div ecx
and eax, 0x7c4ab9af
sub eax, 0x5eed5ff6
and eax, 0x68b5aa06
or eax, 0xc3b9dced
sub eax, 0x18e21123
add eax, 0x9434e28b
or eax, 0x6a78edb9
xor eax, 0x7bb483e0
imul eax, eax, 0x233d3d72
sub eax, 0xb8afec3f
mov ecx, 0xb5437204
xor edx, edx
div ecx
mov ecx, 0xa485d5de
xor edx, edx
div ecx
add eax, 0x17c5047
xor eax, 0xccc638da
sub eax, 0x3bc8005a
xor eax, 0x5adc6670
mov ecx, 0x7cde9823
xor edx, edx
div ecx
or eax, 0x455bcd59
or eax, 0x2f4ce8b2
xor eax, 0x2ca8c060
xor eax, 0x3034f0bc
or eax, 0x44d4939e
mov ecx, 0x9ad6f155
xor edx, edx
div ecx
xor eax, 0x3bf808cd
sub eax, 0x1edd6cb4
sub eax, 0x887fa7d7
and eax, 0xe0056bf
sub eax, 0xc445e6d9
cmp eax, 0x19d60aba
jb 0x1008967e
mov eax, dword [0x10180974]
and eax, dword [0x10180978]
or eax, 0xb3e0369f
xor eax, 0x6bb0cfc1
sub eax, 0x3fcea9e2
mov ecx, 0xfc5cd6f7
xor edx, edx
div ecx
sub eax, 0x30f99fc0
mov ecx, 0x32fcbebe
xor edx, edx
div ecx
add eax, 0xab90687e
sub eax, 0xf4eb93df
and eax, 0x1e987fd8
mov ecx, 0x8bb1d3ab
xor edx, edx
div ecx
mov ecx, 0x4cba449e
xor edx, edx
div ecx
or eax, 0x14083841
mov ecx, 0x62751829
xor edx, edx
div ecx
xor eax, 0xbf8229fc
sub eax, 0x70b33de4
xor eax, 0x9d9dec3a
or eax, 0x4a15167f
mov ecx, 0x9909dc13
xor edx, edx
div ecx
imul eax, eax, 0x531e9d4f
add eax, 0xd90ed33f
imul eax, eax, 0x3b57ff7
imul eax, eax, 0x9d34fa90
mov ecx, 0x9ebc7ddf
xor edx, edx
div ecx
and eax, 0x8c57eeb3
add eax, 0x91796b4b
imul eax, eax, 0xee06c6b9
xor eax, 0xafd488fb
and eax, 0xc34483c
imul eax, eax, 0x6deb9f5d
mov ecx, 0x12e8c6a9
xor edx, edx
div ecx
or eax, 0x28c52ff7
mov ecx, 0x39d07ee
xor edx, edx
div ecx
sub eax, 0x4fc51154
add eax, 0xd43dba11
sub eax, 0xf7e7906
mov ecx, 0x421d4b4b
xor edx, edx
div ecx
imul eax, eax, 0x1edb3ff0
or eax, 0x98f9a88
cmp eax, 0xa59ffc8e
je 0x10088ed5
mov eax, dword [0x1018097c]
or eax, dword [0x10180980]
xor eax, 0xec76da5e
sub eax, 0xc07a3ae7
mov ecx, 0x5281cb14
xor edx, edx
div ecx
or eax, 0x19afaa
and eax, 0x274f0648
imul eax, eax, 0x3099c726
and eax, 0xd1e7682e
imul eax, eax, 0x43df0400
or eax, 0x6dd72d08
and eax, 0x10e9c606
or eax, 0x440f3d83
and eax, 0xca04f7c7
or eax, 0xbfcd8e34
mov ecx, 0x84a4fbca
xor edx, edx
div ecx
mov ecx, 0x380c8279
xor edx, edx
div ecx
imul eax, eax, 0x1422e824
and eax, 0xc7735f6b
imul eax, eax, 0x9ff79d98
sub eax, 0xea823bd4
sub eax, 0xe19ce0d9
xor eax, 0x167c1a16
imul eax, eax, 0x45d627f8
and eax, 0x296f101f
and eax, 0x46a135d
xor eax, 0xe0d90d54
add eax, 0x5289c1c8
mov ecx, 0xcef315ca
xor edx, edx
div ecx
and eax, 0x9f027fb1
add eax, 0x6544744a
xor eax, 0x7f2b3b4f
imul eax, eax, 0x19a5c8f7
and eax, 0x4608ec01
or eax, 0x7e7f6081
mov ecx, 0x7323681d
xor edx, edx
div ecx
mov ecx, 0x2ea1199c
xor edx, edx
div ecx
mov ecx, 0x4d0cfe43
xor edx, edx
div ecx
xor eax, 0xb4cb4231
sub eax, 0xd34a4e4a
cmp eax, 0xa021642c
jbe 0x10089504
mov eax, dword [0x10180984]
xor eax, dword [0x10180988]
imul eax, eax, 0x23f3f59b
mov ecx, 0x45af6eab
xor edx, edx
div ecx
add eax, 0x972465e5
and eax, 0xcfbc6ac3
imul eax, eax, 0x4dff6806
add eax, 0x31b0c023
or eax, 0x610c3ff8
or eax, 0xad0a991f
or eax, 0x284bad2
sub eax, 0x2372a84f
or eax, 0x37fa6736
and eax, 0xc72c6424
imul eax, eax, 0x3f3bb8e3
mov ecx, 0xf2078aae
xor edx, edx
div ecx
add eax, 0x94c463c9
sub eax, 0xc6e801cc
or eax, 0x6278483d
or eax, 0x2591cf7e
sub eax, 0xc408c344
and eax, 0xddd6df92
mov ecx, 0xbc1d523
xor edx, edx
div ecx
imul eax, eax, 0x48d9b5ae
xor eax, 0x237582bf
sub eax, 0x2251b9c
xor eax, 0x678c8ba9
add eax, 0x4dec1d03
or eax, 0x7d73ab0b
sub eax, 0xd0e5cabf
imul eax, eax, 0x64398495
xor eax, 0x9ff59fd3
add eax, 0xdb760dd4
or eax, 0x860f3130
imul eax, eax, 0x802fb29f
sub eax, 0xc8f80a3d
and eax, 0x7360c13d
mov ecx, 0xb29b71d
xor edx, edx
div ecx
or eax, 0x1b068bfc
add eax, 0x4f79791
cmp eax, 0xefe27f34
je 0x10089683
mov eax, 0x1586a7d6
mov dword [esi + 0x28], eax
push eax
mov ebx, esp
push eax
mov eax, esp
push eax
mov edx, esp
push eax
mov ecx, esp
sub esp, 8
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x20], edi
mov esp, edi
mov edi, dword [esi + 0x2c]
mov dword [ebx], edi
mov edi, dword [esi + 0x34]
mov dword [eax], edi
mov byte [edx], 1
mov byte [ecx], 0
mov ecx, dword [eax]
call fcn.10124f20
mov ecx, eax
sub esp, 0x10
mov eax, esp
mov dword [eax + 4], edx
mov dword [eax], ecx
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0xa
call fcn.10126c60
mov ecx, dword [esi + 0x2c]
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.10124f40
mov eax, dword [esi + 0x28]
cmp eax, 0x5c02d2f7
je 0x10089683
mov eax, dword [0x10180994]
or eax, dword [0x10180998]
or eax, 0x90e4a7d6
xor eax, 0xb3cba210
or eax, 0xb8a42db1
xor eax, 0x66c6e2db
sub eax, 0xefddd028
xor eax, 0x13af9005
mov ecx, 0x27374277
xor edx, edx
div ecx
add eax, 0x1af23fb4
mov ecx, 0xe3646562
xor edx, edx
div ecx
imul eax, eax, 0x6215dbad
imul eax, eax, 0xa396ba02
sub eax, 0x7cb22244
add eax, 0xbf4ae32
or eax, 0x3b53366f
and eax, 0xd04279f7
xor eax, 0xd3ab8276
add eax, 0x4f19cd2e
and eax, 0x29d1ada2
and eax, 0xed4edc95
xor eax, 0x95d1f5c9
add eax, 0x920a3fbc
imul eax, eax, 0x2b6862a0
and eax, 0xe1904a93
imul eax, eax, 0xd5ea1e4f
add eax, 0x2ef177f7
sub eax, 0x5136a3bb
sub eax, 0x683cbb46
imul eax, eax, 0xf46b2b29
imul eax, eax, 0x16da0b06
xor eax, 0xbf0e8107
imul eax, eax, 0x7f3ba25b
imul eax, eax, 0x76dc1b33
add eax, 0xb293ef03
imul eax, eax, 0xf399d5e
or eax, 0xa8b12831
and eax, 0x76be208c
imul eax, eax, 0x9e8c15af
imul eax, eax, 0x60645905
cmp eax, 0xf6cb048
jbe 0x10089504
mov eax, dword [0x1018099c]
or eax, dword [0x101809a0]
or eax, 0xbc8f5a23
and eax, 0x86238314
imul eax, eax, 0xe2f8e5b1
sub eax, 0x25fb6bcb
xor eax, 0x82c329ee
sub eax, 0x2b69942c
or eax, 0x514c9bed
or eax, 0x22032fc4
xor eax, 0xce80c7e3
sub eax, 0xedb0271f
imul eax, eax, 0x29fa2a21
sub eax, 0xd81afc8e
imul eax, eax, 0x55082884
or eax, 0xc537c11b
mov ecx, 0x689e6db0
xor edx, edx
div ecx
add eax, 0x32194dfd
sub eax, 0x63b0422d
sub eax, 0x3bdebc63
add eax, 0xc1b254
xor eax, 0x5b8cb2e5
imul eax, eax, 0x665bbdaa
xor eax, 0x270959b7
sub eax, 0xd7fe4808
sub eax, 0xf21604c7
and eax, 0xc0572572
and eax, 0xa43e3eaf
mov ecx, 0x396569fb
xor edx, edx
div ecx
and eax, 0x498106ae
or eax, 0xc9af22db
add eax, 0x61f0fc7f
or eax, 0x6d4161f8
mov ecx, 0x1af1303a
xor edx, edx
div ecx
add eax, 0xb035e1e6
add eax, 0xee8f1fb8
and eax, 0xff4f94f
and eax, 0x653574c
add eax, 0x1792f815
xor eax, 0xa0c48068
cmp eax, 0x851503be
jb 0x100896f7
mov eax, dword [0x101809a4]
imul eax, dword [0x101809a8]
sub eax, 0xccf5d694
or eax, 0xa61d20db
xor eax, 0xb027ddbf
mov ecx, 0xe08af8fb
xor edx, edx
div ecx
imul eax, eax, 0x70004aa4
sub eax, 0x49beab12
imul eax, eax, 0x7cabf9bf
add eax, 0x7c945733
xor eax, 0xf7ddf727
sub eax, 0x4e7289d5
and eax, 0x3f873a04
xor eax, 0x773c9749
add eax, 0x83c05b8a
or eax, 0x6d4147aa
or eax, 0x83fc4a42
or eax, 0x888c9432
add eax, 0xf444d2a4
xor eax, 0x9b8aa685
sub eax, 0x49156a56
or eax, 0x56df33b2
or eax, 0x2621a6e8
or eax, 0x3f088929
add eax, 0x5dde63c8
xor eax, 0x3f916acf
mov ecx, 0xffdfb5ac
xor edx, edx
div ecx
or eax, 0x5033a34f
xor eax, 0x872558ad
xor eax, 0x25f4ebe6
or eax, 0x7373e2eb
imul eax, eax, 0x560f94af
sub eax, 0x3f9588d5
xor eax, 0xf974326c
xor eax, 0x48ec7f72
mov ecx, 0xc1f77f8a
xor edx, edx
div ecx
and eax, 0x94826c69
mov ecx, 0x264841d8
xor edx, edx
div ecx
and eax, 0xc24c29f9
sub eax, 0x432350d5
cmp eax, 0xc4cd4e82
jae 0x10089407
mov ecx, dword [esi + 0x38]
xor ecx, ebp
call fcn.10126c4a
mov eax, dword [esi + 0x30]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [0x101809ac]
xor eax, dword [0x101809b0]
add eax, 0x895fa258
mov ecx, 0x7db6f2e1
xor edx, edx
div ecx
or eax, 0xcb1b54b3
sub eax, 0x370100dd
sub eax, 0xc094a57e
sub eax, 0xf00cc816
mov ecx, 0xe4744f5f
xor edx, edx
div ecx
sub eax, 0xcf46708
xor eax, 0xd5d3894d
sub eax, 0x2e2ec035
sub eax, 0x50031417
mov ecx, 0x6ce12965
xor edx, edx
div ecx
imul eax, eax, 0x465bdc20
xor eax, 0x5ba1a6c6
and eax, 0xb992fa02
sub eax, 0x520dfed6
sub eax, 0x71c67080
imul eax, eax, 0x77862e1b
xor eax, 0x77c9b3a3
xor eax, 0x823e50e9
xor eax, 0xc61cdd0c
imul eax, eax, 0xc58c339d
or eax, 0x7b85a06f
xor eax, 0x28982865
or eax, 0x4c9f40bd
sub eax, 0x56d68c23
or eax, 0xb5321cbc
and eax, 0xe67ac385
mov ecx, 0xaf83436
xor edx, edx
div ecx
xor eax, 0x521db514
or eax, 0x50c3f933
mov ecx, 0x6ce534de
xor edx, edx
div ecx
imul eax, eax, 0x7a9e735
xor eax, 0x312ec968
mov ecx, 0xc0d33096
xor edx, edx
div ecx
or eax, 0x6b5c7744
add eax, 0x5eabf8f
or eax, 0x73ad4250
cmp eax, 0x28c6d7dd
jbe 0x100896fc
mov eax, 0x923cdf23
mov dword [esi + 0x1c], eax
push eax
mov ebx, esp
push eax
mov eax, esp
push eax
mov edx, esp
push eax
mov ecx, esp
sub esp, 8
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x14], edi
mov esp, edi
mov edi, dword [esi + 0x2c]
mov dword [ebx], edi
mov edi, dword [esi + 0x34]
mov dword [eax], edi
mov byte [edx], 1
mov byte [ecx], 0
mov ecx, dword [eax]
call fcn.10124f20
mov ecx, eax
sub esp, 0x10
mov eax, esp
mov dword [eax + 4], edx
mov dword [eax], ecx
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0xa
call fcn.10126c60
mov ecx, dword [esi + 0x2c]
mov edi, eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x18], edi
mov edi, edx
mov edx, dword [esi + 0x18]
mov dword [eax + 4], edi
mov dword [eax], edx
sub esp, 4
mov dword [esp], eax
call fcn.10124f40
mov eax, dword [esi + 0x1c]
cmp eax, 0xd9c9aee0
je 0x100896fc
jmp 0x100890cd
jmp 0x10088ed5
push eax
mov ebx, esp
push eax
mov eax, esp
push eax
mov edx, esp
push eax
mov ecx, esp
sub esp, 8
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0xc], edi
mov esp, edi
mov edi, dword [esi + 0x2c]
mov dword [ebx], edi
mov edi, dword [esi + 0x34]
mov dword [eax], edi
mov byte [edx], 1
mov byte [ecx], 0
mov ecx, dword [eax]
call fcn.10124f20
mov ecx, eax
sub esp, 0x10
mov eax, esp
mov dword [eax + 4], edx
mov dword [eax], ecx
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0xa
call fcn.10126c60
mov ecx, dword [esi + 0x2c]
mov edi, eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x10], edi
mov edi, edx
mov edx, dword [esi + 0x10]
mov dword [eax + 4], edi
mov dword [eax], edx
sub esp, 4
mov dword [esp], eax
call fcn.10124f40
jmp 0x100891b7
jmp 0x10089407
push eax
mov ebx, esp
push eax
mov eax, esp
push eax
mov edx, esp
push eax
mov ecx, esp
sub esp, 8
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 4], edi
mov esp, edi
mov edi, dword [esi + 0x2c]
mov dword [ebx], edi
mov edi, dword [esi + 0x34]
mov dword [eax], edi
mov byte [edx], 1
mov byte [ecx], 0
mov ecx, dword [eax]
call fcn.10124f20
mov ecx, eax
sub esp, 0x10
mov eax, esp
mov dword [eax + 4], edx
mov dword [eax], ecx
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0xa
call fcn.10126c60
mov ecx, dword [esi + 0x2c]
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.10124f40
jmp 0x100895f4