Function at 0x10040a40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
sub esp, 0xc
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], eax
mov eax, dword [0x10147518]
and eax, dword [0x1014751c]
add eax, 0xfb1ebf31
and eax, 0xec190e17
add eax, 0x9e6cb730
mov ecx, 0x26491a6e
xor edx, edx
div ecx
imul eax, eax, 0x352f04f4
add eax, 0xfc5eae3e
xor eax, 0xe39bdc92
imul eax, eax, 0x2911f3d
xor eax, 0x4c68b239
sub eax, 0xb0a7b0b
and eax, 0x9a39778c
and eax, 0xa7e24725
mov ecx, 0x92aa112b
xor edx, edx
div ecx
sub eax, 0x1f1def5e
add eax, 0x432bb1d1
sub eax, 0x2643b717
sub eax, 0xacb8b93f
or eax, 0x96617d22
mov ecx, 0xd39d9835
xor edx, edx
div ecx
and eax, 0x5ad511d9
mov ecx, 0x80236d27
xor edx, edx
div ecx
mov ecx, 0x9d2a1455
xor edx, edx
div ecx
xor eax, 0x5fffb871
add eax, 0xe0f760e9
xor eax, 0x53a39dec
add eax, 0x182aa6da
and eax, 0x8f64acbe
sub eax, 0x2ae472c3
imul eax, eax, 0x747607fb
or eax, 0x192937ec
xor eax, 0xe6f62679
mov ecx, 0x5b1e8143
xor edx, edx
div ecx
sub eax, 0x8429c00
cmp eax, 0x51f9098c
jb 0x10040e9f
mov eax, dword [0x10147520]
sub eax, dword [0x10147524]
or eax, 0xc3c91de1
or eax, 0x9ea4caf9
and eax, 0xb9e02448
sub eax, 0xbff60816
add eax, 0xb7af2abb
imul eax, eax, 0x39c18a56
or eax, 0x96954280
xor eax, 0xe327df51
or eax, 0x76c62cbf
xor eax, 0x193889e7
and eax, 0x9cb54696
mov ecx, 0x25c335e8
xor edx, edx
div ecx
add eax, 0x18b9da8e
imul eax, eax, 0x75ba9849
or eax, 0xdc7be773
sub eax, 0xbeb1ed1f
and eax, 0x6ecb03d3
mov ecx, 0x9aaa8acc
xor edx, edx
div ecx
and eax, 0xb4bef776
or eax, 0x5c3dfe38
add eax, 0x60e91610
or eax, 0xe1a9e4c9
or eax, 0x1dd8ee05
imul eax, eax, 0xe42d075d
sub eax, 0x4fbf7ad7
imul eax, eax, 0x70422520
sub eax, 0x7b3c478e
mov ecx, 0x8e5ebb49
xor edx, edx
div ecx
add eax, 0xc08a07ad
imul eax, eax, 0xb8c87a78
imul eax, eax, 0xeb4ced1
and eax, 0x56b39e5f
and eax, 0xc3a1b14a
cmp eax, 0xfe6f5dce
je 0x10040f96
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov eax, 0x1ec34d40
push eax
mov edx, esp
push eax
mov ecx, esp
mov dword [edx], edi
mov dword [ecx], esi
mov ecx, dword [ecx]
mov dword [ebp - 0x14], ecx
mov edx, dword [edx]
mov dword [ecx], edx
cmp eax, 0xf979a52b
je 0x10040f96
mov eax, dword [0x10147530]
sub eax, dword [0x10147534]
xor eax, 0xcf6827e0
or eax, 0x25366df1
sub eax, 0x46d33cc5
xor eax, 0x225bf641
xor eax, 0x66bd1eac
or eax, 0xa04316c
imul eax, eax, 0xd4e87a6
xor eax, 0x42921bdf
or eax, 0xb7f80f05
and eax, 0x92cc3ac3
and eax, 0xa0f039a3
sub eax, 0x63dd2af7
mov ecx, 0x80cbf32e
xor edx, edx
div ecx
or eax, 0xae6dfc4a
or eax, 0x964c37ff
and eax, 0x53b65823
or eax, 0xc927d30
mov ecx, 0x41291d27
xor edx, edx
div ecx
imul eax, eax, 0xeead8144
sub eax, 0xe3cf614d
mov ecx, 0x3721dac9
xor edx, edx
div ecx
sub eax, 0xe9c47d2f
imul eax, eax, 0x3ce432a1
mov ecx, 0x86b5a4c8
xor edx, edx
div ecx
add eax, 0xb2b90844
or eax, 0x31e63e05
imul eax, eax, 0x946fb935
mov ecx, 0xfc1b9a05
xor edx, edx
div ecx
imul eax, eax, 0x8fcd9efa
or eax, 0xda924d7e
and eax, 0x1756e50b
mov ecx, 0xeeda60f5
xor edx, edx
div ecx
or eax, 0x8a8a7724
cmp eax, 0x8bbf36e3
jae 0x10040e9f
mov eax, dword [0x10147538]
sub eax, dword [0x1014753c]
xor eax, 0x5942eb44
imul eax, eax, 0xe8ddd508
and eax, 0x5a1b8d29
xor eax, 0xec486206
and eax, 0xce6a81f0
and eax, 0x117ac5b0
add eax, 0x50d9ed47
or eax, 0xc360b01
sub eax, 0x4c2bf714
xor eax, 0x44372c28
add eax, 0xfe79d8e8
xor eax, 0x165bf359
mov ecx, 0xe14daf09
xor edx, edx
div ecx
add eax, 0x8fff606
sub eax, 0xe86f9e2c
or eax, 0xd42276b
or eax, 0x46a5d0de
sub eax, 0xa364d4dd
xor eax, 0x5e0641a7
or eax, 0xddfb2419
or eax, 0x1e71d3e
imul eax, eax, 0xf43f94f2
mov ecx, 0x7a9dcf83
xor edx, edx
div ecx
or eax, 0x3a1235f7
or eax, 0x9bcdb4fe
xor eax, 0x37c8cecf
and eax, 0xfdb47e7e
mov ecx, 0xfb22bb36
xor edx, edx
div ecx
and eax, 0x63221317
sub eax, 0x1bcbc257
or eax, 0x2f8b4b77
xor eax, 0xfbeb2616
mov ecx, 0x83e7c6d8
xor edx, edx
div ecx
cmp eax, 0x6bf08511
jae 0x10040fb1
mov eax, dword [0x10147540]
xor eax, dword [0x10147544]
or eax, 0x1f878e14
xor eax, 0x87fb5b54
sub eax, 0xa198efc3
mov ecx, 0x3e0861d4
xor edx, edx
div ecx
and eax, 0xa747e52f
sub eax, 0xaace0932
or eax, 0xf8411607
xor eax, 0x39a478a8
add eax, 0x980d5ed6
mov ecx, 0x7aa3d99c
xor edx, edx
div ecx
and eax, 0xa93a43ea
xor eax, 0x3a5b9302
xor eax, 0x68916086
sub eax, 0x4cae176d
and eax, 0x616d0e19
add eax, 0xaec38ba6
xor eax, 0xf4034876
sub eax, 0x9743f1d5
mov ecx, 0xced8411f
xor edx, edx
div ecx
or eax, 0xaafec6
mov ecx, 0x2cd7f9a9
xor edx, edx
div ecx
add eax, 0xba4d90f5
imul eax, eax, 0xf610dacc
and eax, 0x6a930017
xor eax, 0xf79040f
imul eax, eax, 0xb5189f87
and eax, 0xfdc9399b
mov ecx, 0x802f4e89
xor edx, edx
div ecx
sub eax, 0xe946bff7
or eax, 0x13063073
xor eax, 0x99d6306b
add eax, 0x346ebb56
xor eax, 0x438ab217
cmp eax, 0xb4f5894f
je 0x10040dc2
mov eax, dword [ebp - 0x14]
lea esp, [ebp - 8]
pop esi
pop edi
pop ebp
ret 4
mov eax, dword [0x10147548]
sub eax, dword [0x1014754c]
imul eax, eax, 0x825f3005
imul eax, eax, 0xa97c817c
mov ecx, 0x4f98c9e2
xor edx, edx
div ecx
sub eax, 0x4e48d75
xor eax, 0x280c134e
and eax, 0xadfc1f4f
or eax, 0xc93ae1f8
or eax, 0xe74915fb
add eax, 0xde396a9d
add eax, 0x806617fe
add eax, 0xeef2b74e
or eax, 0x33710db5
and eax, 0x2ddbb120
and eax, 0xfc586b90
sub eax, 0x8b5c8c42
add eax, 0x4b5a236e
and eax, 0x3b425dac
and eax, 0x44ca4104
sub eax, 0x94069a4e
or eax, 0x8d91c18
imul eax, eax, 0x26f95b52
imul eax, eax, 0x213b4b2c
xor eax, 0xb7e86106
mov ecx, 0xf9d3e5b0
xor edx, edx
div ecx
or eax, 0x434a9610
or eax, 0xa495e461
xor eax, 0x84222cd2
xor eax, 0xe307c52c
imul eax, eax, 0x3374f9e1
add eax, 0x2212a758
sub eax, 0x58b7e0df
xor eax, 0x51ea1414
mov ecx, 0xdff2e037
xor edx, edx
div ecx
cmp eax, 0xbef0e32
jae 0x10040fb6
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov eax, 0x88489ff3
push eax
mov edx, esp
push eax
mov ecx, esp
mov dword [edx], edi
mov dword [ecx], esi
mov ecx, dword [ecx]
mov edx, dword [edx]
mov dword [ecx], edx
cmp eax, 0x3192f084
jbe 0x10040f6b
jmp 0x10040b27
mov edx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
push eax
mov ecx, esp
push eax
mov eax, esp
mov dword [ecx], esi
mov dword [eax], edx
mov eax, dword [eax]
mov ecx, dword [ecx]
mov dword [eax], ecx
jmp 0x10040bf4
jmp 0x10040dc2
mov edx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
push eax
mov ecx, esp
push eax
mov eax, esp
mov dword [ecx], esi
mov dword [eax], edx
mov eax, dword [eax]
mov ecx, dword [ecx]
mov dword [eax], ecx
jmp 0x10040f6b