Function at 0x10089690
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xac
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x20], eax
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 [0x1014a0a8]
xor eax, dword [0x1014a0ac]
mov ecx, 0xd02b46f4
xor edx, edx
div ecx
add eax, 0x5c871f41
mov ecx, 0x39d47e9e
xor edx, edx
div ecx
and eax, 0x5ea1007b
xor eax, 0x169e4191
and eax, 0x25d4965f
add eax, 0x8e7a891d
mov ecx, 0xd6b63d45
xor edx, edx
div ecx
add eax, 0xf4d4b906
or eax, 0x22f239ee
and eax, 0xe11b9340
or eax, 0x5922691c
add eax, 0x82ff4327
xor eax, 0x76ea531e
and eax, 0xde49a18e
add eax, 0x943c41e0
imul eax, eax, 0xb7ba7b89
sub eax, 0x4846bba4
or eax, 0x17cda9be
mov ecx, 0x1698d6cd
xor edx, edx
div ecx
xor eax, 0xe1d60b01
and eax, 0x3d475422
sub eax, 0xee508fe1
sub eax, 0x642e2534
add eax, 0x63026d4c
or eax, 0x1ab9eb09
xor eax, 0xbd53e05c
imul eax, eax, 0x5bf8c4b1
imul eax, eax, 0x240c366
xor eax, 0xcdae64b0
xor eax, 0x99407467
or eax, 0x2ec45191
sub eax, 0x224d0bfb
cmp eax, 0x154b5eaa
je 0x10089d56
mov eax, dword [0x1014a0b0]
xor eax, dword [0x1014a0b4]
and eax, 0xfe38b5db
mov ecx, 0x4af6a66f
xor edx, edx
div ecx
or eax, 0x89d33139
add eax, 0xc091bf62
or eax, 0xe7f386b7
xor eax, 0x2ff3036c
add eax, 0x259c91d8
or eax, 0x696405c7
sub eax, 0x9fd1f700
or eax, 0x318ef18b
or eax, 0xf87ace51
or eax, 0xc066b528
imul eax, eax, 0x7e02b8a2
or eax, 0x6aaa6f92
add eax, 0x325a9da
imul eax, eax, 0xbaba3ced
imul eax, eax, 0x337d1f72
imul eax, eax, 0x1fc1aaf1
xor eax, 0x6e6e8ffc
mov ecx, 0x2e22e440
xor edx, edx
div ecx
add eax, 0x1332fb1d
mov ecx, 0xf8460b41
xor edx, edx
div ecx
xor eax, 0x606320b1
xor eax, 0xcdf7916d
add eax, 0x8f07c4cc
and eax, 0xb835e0b9
mov ecx, 0xaea75986
xor edx, edx
div ecx
or eax, 0xc49b018e
and eax, 0xf342a82c
add eax, 0xb365f153
or eax, 0xeefd7392
or eax, 0x3934dbef
imul eax, eax, 0x4f99dff5
cmp eax, 0x3f52372d
je 0x10089797
mov eax, dword [0x1014a0b8]
sub eax, dword [0x1014a0bc]
add eax, 0x695f4049
or eax, 0x828f3730
xor eax, 0x1fcca0f3
and eax, 0x9b20737
xor eax, 0xabb3a203
and eax, 0xfe07d6ff
sub eax, 0x8f1afb0c
mov ecx, 0xa68adb97
xor edx, edx
div ecx
xor eax, 0x8e59b132
imul eax, eax, 0x59fdaa10
imul eax, eax, 0x97746b3f
and eax, 0xf9892720
mov ecx, 0x87d97da2
xor edx, edx
div ecx
mov ecx, 0x674dfc35
xor edx, edx
div ecx
or eax, 0xa0e11c3f
imul eax, eax, 0x8305f5f0
mov ecx, 0xcd5c496c
xor edx, edx
div ecx
mov ecx, 0xc6ced34d
xor edx, edx
div ecx
and eax, 0xb69781e7
imul eax, eax, 0xade44d46
or eax, 0x5c0afd43
add eax, 0x22d660b6
imul eax, eax, 0xc9f9e837
imul eax, eax, 0xac428e5
or eax, 0x237041cd
mov ecx, 0x1b76a650
xor edx, edx
div ecx
imul eax, eax, 0xe11b6ace
imul eax, eax, 0x549abf33
mov ecx, 0x8bdabc89
xor edx, edx
div ecx
add eax, 0x941e2d73
or eax, 0xb4840afc
and eax, 0x3502de3c
mov ecx, 0x92fb6cdb
xor edx, edx
div ecx
cmp eax, 0x2afc229b
je 0x10089bbc
mov eax, dword [0x1014a0c0]
xor eax, dword [0x1014a0c4]
xor eax, 0xa8a68bff
sub eax, 0x11360abd
add eax, 0xecf15bbb
sub eax, 0x323b92db
or eax, 0x31e72182
sub eax, 0xc4f3db48
sub eax, 0xbc7a5dec
add eax, 0x750476f0
sub eax, 0x407f947
xor eax, 0xa27cb450
mov ecx, 0xb6f834b6
xor edx, edx
div ecx
xor eax, 0x95d7634b
or eax, 0x43ca8e13
mov ecx, 0xe71705f3
xor edx, edx
div ecx
xor eax, 0x8cdbb2b0
and eax, 0x5ec5eda3
mov ecx, 0xb2a2e4a2
xor edx, edx
div ecx
add eax, 0xe239663a
add eax, 0xda90432a
sub eax, 0xfa655b26
xor eax, 0xb7ed40a4
xor eax, 0xc9e60089
and eax, 0x63c99938
add eax, 0x836c007d
or eax, 0xa04684b8
add eax, 0xd57fd2a9
xor eax, 0x1738671d
or eax, 0xa5a9eb81
or eax, 0x7bad3065
imul eax, eax, 0xdd6e4e03
or eax, 0x7902df98
and eax, 0x6c9c61f3
add eax, 0x2a81214f
cmp eax, 0xedca699d
ja 0x10089d5b
mov ecx, dword [ebp - 0x18]
mov eax, 0x2bedf5f7
mov dword [ebp - 0x34], eax
push eax
mov edx, esp
push eax
mov esi, esp
push eax
mov edi, esp
push eax
mov ebx, esp
push eax
mov eax, esp
mov dword [ebp - 0x50], eax
push eax
mov eax, esp
mov dword [ebp - 0x4c], eax
push eax
mov eax, esp
mov dword [ebp - 0x48], eax
push eax
mov eax, esp
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x28]
mov dword [edx], eax
mov eax, dword [ebp - 0x24]
mov dword [esi], eax
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebx], eax
mov eax, dword [ebp - 0x50]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x48]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x2c]
mov dword [ecx], eax
mov eax, dword [ebp - 0x50]
mov ecx, dword [ecx]
mov edx, dword [edx]
mov esi, dword [esi]
mov edi, dword [edi]
mov ebx, dword [ebx]
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x48]
mov eax, dword [eax]
mov dword [ebp - 0x44], eax
mov eax, dword [ecx]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x44]
sub esp, 0x1c
mov dword [esp], eax
mov eax, dword [ebp - 0x40]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x38]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edx
call dword [eax + 0x1c]
mov ecx, eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x30], ecx
cmp eax, 0x5307f4a4
je 0x10089a12
mov eax, dword [0x1014a0d0]
or eax, dword [0x1014a0d4]
xor eax, 0xe557d512
or eax, 0x8a064a78
imul eax, eax, 0xef2de45
imul eax, eax, 0x9e099dfa
sub eax, 0x70c7577e
and eax, 0x7b1ed174
and eax, 0x7f5d1e31
mov ecx, 0x73b9142f
xor edx, edx
div ecx
sub eax, 0x6e684f0d
imul eax, eax, 0xd429dcb0
add eax, 0xe106444c
and eax, 0x1c7bf06
sub eax, 0x211d584
mov ecx, 0xd23b002c
xor edx, edx
div ecx
or eax, 0x93d2b03b
xor eax, 0x43afa4ee
mov ecx, 0x2dc6884d
xor edx, edx
div ecx
and eax, 0xbf698bda
xor eax, 0xf48c10c6
add eax, 0x2f5da145
or eax, 0xe438e888
xor eax, 0x86668aa7
and eax, 0xe86e4f64
sub eax, 0xfbdc269d
or eax, 0x5eb2fb6
mov ecx, 0x10d37d
xor edx, edx
div ecx
mov ecx, 0xfa9a07a7
xor edx, edx
div ecx
sub eax, 0xe6203f89
mov ecx, 0x94a15461
xor edx, edx
div ecx
add eax, 0xdfb6dbcc
add eax, 0x7faa90cc
and eax, 0x7e9c380b
xor eax, 0x8fbcb01b
cmp eax, 0x679f7994
je 0x10089bbc
mov eax, dword [ebp - 0x30]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x1c
mov eax, dword [0x1014a0d8]
or eax, dword [0x1014a0dc]
imul eax, eax, 0x9c7746b6
imul eax, eax, 0xbead8cd
mov ecx, 0xd4001706
xor edx, edx
div ecx
sub eax, 0x5c642ae7
or eax, 0x76247fac
mov ecx, 0xa083990f
xor edx, edx
div ecx
imul eax, eax, 0x1d2d3dd9
xor eax, 0xd86e92db
imul eax, eax, 0xcc66c19f
add eax, 0xa4e6f12b
sub eax, 0x341a264b
sub eax, 0x168b2515
sub eax, 0x4fdcb515
sub eax, 0x11059b6e
or eax, 0x125a9354
mov ecx, 0xf8853e3f
xor edx, edx
div ecx
or eax, 0x5707df3a
imul eax, eax, 0x2860eec2
or eax, 0xa939a745
and eax, 0x22a034c6
or eax, 0x98b4c5c0
and eax, 0x19969c9a
and eax, 0xc625bc89
mov ecx, 0xe2cf6a78
xor edx, edx
div ecx
sub eax, 0x10f471a8
imul eax, eax, 0xcace9c8
and eax, 0x5e1a0c97
imul eax, eax, 0x940aaced
xor eax, 0xa76c2fc7
or eax, 0x27f5776b
sub eax, 0x7ec3484c
and eax, 0xf5253369
imul eax, eax, 0x5e21df1b
cmp eax, 0x934be1aa
jae 0x10089e39
mov ecx, dword [ebp - 0x18]
mov eax, 0x3d3d9500
mov dword [ebp - 0x58], eax
push eax
mov edx, esp
push eax
mov esi, esp
push eax
mov edi, esp
push eax
mov ebx, esp
push eax
mov eax, esp
mov dword [ebp - 0x74], eax
push eax
mov eax, esp
mov dword [ebp - 0x70], eax
push eax
mov eax, esp
mov dword [ebp - 0x6c], eax
push eax
mov eax, esp
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x28]
mov dword [edx], eax
mov eax, dword [ebp - 0x24]
mov dword [esi], eax
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebx], eax
mov eax, dword [ebp - 0x74]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x70]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x6c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x2c]
mov dword [ecx], eax
mov eax, dword [ebp - 0x74]
mov ecx, dword [ecx]
mov edx, dword [edx]
mov esi, dword [esi]
mov edi, dword [edi]
mov ebx, dword [ebx]
mov eax, dword [eax]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x70]
mov eax, dword [eax]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
mov dword [ebp - 0x68], eax
mov eax, dword [ecx]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x68]
sub esp, 0x1c
mov dword [esp], eax
mov eax, dword [ebp - 0x64]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x60]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x5c]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edx
call dword [eax + 0x1c]
mov eax, dword [ebp - 0x58]
cmp eax, 0x737195b1
ja 0x10089c8f
jmp 0x1008994a
jmp 0x10089797
mov ecx, dword [ebp - 0x18]
push eax
mov edx, esp
push eax
mov esi, esp
push eax
mov edi, esp
push eax
mov ebx, esp
push eax
mov eax, esp
mov dword [ebp - 0x94], eax
push eax
mov eax, esp
mov dword [ebp - 0x90], eax
push eax
mov eax, esp
mov dword [ebp - 0x8c], eax
push eax
mov eax, esp
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x28]
mov dword [edx], eax
mov eax, dword [ebp - 0x24]
mov dword [esi], eax
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebx], eax
mov eax, dword [ebp - 0x94]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x90]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x8c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x98]
mov eax, dword [ebp - 0x2c]
mov dword [ecx], eax
mov eax, dword [ebp - 0x94]
mov ecx, dword [ecx]
mov edx, dword [edx]
mov esi, dword [esi]
mov edi, dword [edi]
mov ebx, dword [ebx]
mov eax, dword [eax]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x90]
mov eax, dword [eax]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax]
mov dword [ebp - 0x88], eax
mov eax, dword [ecx]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x88]
sub esp, 0x1c
mov dword [esp], eax
mov eax, dword [ebp - 0x84]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x80]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x7c]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edx
call dword [eax + 0x1c]
jmp 0x10089a12
mov ecx, dword [ebp - 0x18]
push eax
mov edx, esp
push eax
mov esi, esp
push eax
mov edi, esp
push eax
mov ebx, esp
push eax
mov eax, esp
mov dword [ebp - 0xb4], eax
push eax
mov eax, esp
mov dword [ebp - 0xb0], eax
push eax
mov eax, esp
mov dword [ebp - 0xac], eax
push eax
mov eax, esp
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0x28]
mov dword [edx], eax
mov eax, dword [ebp - 0x24]
mov dword [esi], eax
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebx], eax
mov eax, dword [ebp - 0xb4]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xb0]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xac]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x2c]
mov dword [ecx], eax
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ecx]
mov edx, dword [edx]
mov esi, dword [esi]
mov edi, dword [edi]
mov ebx, dword [ebx]
mov eax, dword [eax]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xac]
mov eax, dword [eax]
mov dword [ebp - 0xa8], eax
mov eax, dword [ecx]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0xa8]
sub esp, 0x1c
mov dword [esp], eax
mov eax, dword [ebp - 0xa4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xa0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x9c]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edx
call dword [eax + 0x1c]
jmp 0x10089c8f