Function at 0x10040fe0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x3c
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 [0x10147558]
or eax, dword [0x1014755c]
add eax, 0x5c8fbb44
sub eax, 0x43837bd
add eax, 0x98b9a8c3
mov ecx, 0x11124de4
xor edx, edx
div ecx
and eax, 0x77d56829
add eax, 0x3cfdf29b
mov ecx, 0xe88790cb
xor edx, edx
div ecx
sub eax, 0x43612c2e
add eax, 0x8850b902
or eax, 0x3c0efab5
mov ecx, 0x5bb206d7
xor edx, edx
div ecx
xor eax, 0xead5fb63
mov ecx, 0xc33e167a
xor edx, edx
div ecx
mov ecx, 0xd05798ed
xor edx, edx
div ecx
add eax, 0x848a9793
and eax, 0x550edfed
and eax, 0x99dd2958
sub eax, 0x16af553c
add eax, 0xead95776
sub eax, 0x4c27b888
add eax, 0x6c35bb5a
imul eax, eax, 0xefc2ec5a
or eax, 0x4bd40856
sub eax, 0xfb0547b5
imul eax, eax, 0x3b3947d9
xor eax, 0xf9aef45a
add eax, 0x1c9e5280
xor eax, 0xbe3a15ea
imul eax, eax, 0xa0a85546
sub eax, 0xe4e60412
sub eax, 0xc2841b5
add eax, 0xd12ee3c2
and eax, 0x34b37434
cmp eax, 0xa52ad249
jae 0x1004149b
mov eax, dword [0x10147560]
or eax, dword [0x10147564]
and eax, 0x9206c5fa
add eax, 0xbe634385
sub eax, 0x32e9b332
or eax, 0x10ba4c6c
and eax, 0x32c959e6
and eax, 0x7783315
sub eax, 0xf4bd8a94
add eax, 0x48aebd93
add eax, 0x530ee7f3
sub eax, 0x3ad6962e
mov ecx, 0x7300f00f
xor edx, edx
div ecx
imul eax, eax, 0x9e7be5fe
xor eax, 0xc74fa1fb
imul eax, eax, 0x6e3b7bfd
sub eax, 0xdd314985
xor eax, 0xa6aa2e29
sub eax, 0x99c6a62e
mov ecx, 0x471ba97c
xor edx, edx
div ecx
mov ecx, 0xafaf3ccd
xor edx, edx
div ecx
imul eax, eax, 0xfb466e34
mov ecx, 0xa850bd7d
xor edx, edx
div ecx
or eax, 0x8f883289
xor eax, 0x77363933
xor eax, 0x4e74b9e2
or eax, 0x1bb34d09
or eax, 0xa6cbd417
mov ecx, 0xaf772a9f
xor edx, edx
div ecx
or eax, 0xbe08c35b
sub eax, 0xb5de8098
imul eax, eax, 0x38ef1618
mov ecx, 0x3a5b3978
xor edx, edx
div ecx
imul eax, eax, 0x432dbb0a
sub eax, 0xfa6ac51d
cmp eax, 0x9425b1a0
je 0x100415d6
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
mov eax, 0x10462100
mov dword [ebp - 0x24], eax
push eax
mov esi, esp
push eax
mov edx, esp
push eax
mov ecx, esp
push eax
mov eax, esp
mov dword [esi], edi
mov edi, dword [ebp - 0x18]
mov dword [edx], edi
mov edi, dword [ebp - 0x10]
mov dword [ecx], ebx
mov dword [eax], edi
mov esi, dword [esi]
mov dword [ebp - 0x2c], esi
mov ebx, dword [edx]
mov edi, dword [ecx]
mov esi, dword [eax]
call fcn.100416a0
mov ecx, dword [ebp - 0x2c]
mov edx, dword [eax]
mov dword [ebp - 0x28], edx
mov edx, dword [eax + 4]
sub esp, 0x18
mov eax, esp
mov dword [eax + 0x14], ecx
mov ecx, dword [ebp - 0x28]
mov dword [eax + 0x10], ebx
mov dword [eax + 0xc], edi
mov dword [eax + 8], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.10121ea6
add esp, 0x18
mov ecx, eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], ecx
cmp eax, 0x1f054848
jae 0x100415d6
mov eax, dword [0x10147570]
xor edx, edx
div dword [0x10147574]
mov ecx, 0xe4cadd1f
xor edx, edx
div ecx
sub eax, 0xbef21cee
add eax, 0x2659524b
add eax, 0xd7e6f24f
sub eax, 0x7addcc4c
imul eax, eax, 0xd34e943e
sub eax, 0x3472e5a1
or eax, 0xa535626a
mov ecx, 0xe45a540f
xor edx, edx
div ecx
mov ecx, 0x6eef2e67
xor edx, edx
div ecx
and eax, 0x97038c5d
imul eax, eax, 0xb074f8fb
or eax, 0x80ce1948
mov ecx, 0x6c18818f
xor edx, edx
div ecx
sub eax, 0x708bf292
imul eax, eax, 0x7d8e04dc
and eax, 0x5de2fc5
imul eax, eax, 0xa2c775fe
imul eax, eax, 0x31b85af0
mov ecx, 0x42a6a8ea
xor edx, edx
div ecx
xor eax, 0x9256c862
or eax, 0xc9daeaca
xor eax, 0x5830c3d9
imul eax, eax, 0x64ec7e79
sub eax, 0x8da7fe8e
sub eax, 0xc8e3186f
or eax, 0xd3733b88
sub eax, 0xc935b2ed
sub eax, 0xfc03c163
and eax, 0xd78921d1
mov ecx, 0x2880ba2b
xor edx, edx
div ecx
or eax, 0xea95770b
mov ecx, 0x6d8180d1
xor edx, edx
div ecx
cmp eax, 0x60030bba
ja 0x1004149b
mov eax, dword [0x10147578]
sub eax, dword [0x1014757c]
xor eax, 0x6260254d
or eax, 0xb97af936
xor eax, 0xb4fb434b
add eax, 0xabc6f76d
and eax, 0x101b914c
or eax, 0x41481af1
add eax, 0xfe6ea1e1
and eax, 0xaeeed468
imul eax, eax, 0x916154c8
add eax, 0x7588b7d3
imul eax, eax, 0x747538ed
or eax, 0x11d2a608
add eax, 0x33ff52e8
imul eax, eax, 0xc56a21a5
mov ecx, 0x4566216
xor edx, edx
div ecx
add eax, 0xb5367d97
imul eax, eax, 0xf86f3b6f
or eax, 0x7a8dbd3c
imul eax, eax, 0xb0648464
xor eax, 0x4774ae47
mov ecx, 0x2ec3ab94
xor edx, edx
div ecx
or eax, 0x48f88f05
or eax, 0x1b85d18d
or eax, 0xf18d7510
sub eax, 0xda89ef17
xor eax, 0x7f0cf063
or eax, 0x19788ab7
and eax, 0x53ec0f91
imul eax, eax, 0x4de36e34
xor eax, 0x6d90eb68
sub eax, 0xf8158753
add eax, 0xb6d9838d
or eax, 0xec6b3811
cmp eax, 0x26f8ba30
jb 0x10041637
mov eax, dword [0x10147580]
and eax, dword [0x10147584]
add eax, 0xfce8ac6f
and eax, 0xd42c12dc
imul eax, eax, 0xae50e53c
and eax, 0x8260459b
xor eax, 0xe3c499b0
xor eax, 0xbecd69f1
mov ecx, 0xbd1a8dd2
xor edx, edx
div ecx
or eax, 0xad5d3015
and eax, 0xca376b64
imul eax, eax, 0x77a6e248
or eax, 0x449fff69
add eax, 0xc1ca6e5a
and eax, 0xaa5aa3b2
xor eax, 0x5ab21f0d
and eax, 0x32fc5d7
sub eax, 0x75320c3f
add eax, 0x8a8607c4
add eax, 0x50bc1b4a
or eax, 0xab574780
sub eax, 0xa27e0b3e
and eax, 0x491ca51a
and eax, 0xfb6d3cf1
xor eax, 0xe31bbe62
xor eax, 0x2d0acf23
add eax, 0x1389b36c
imul eax, eax, 0x847ad855
xor eax, 0x39d939da
or eax, 0xea94eccc
add eax, 0x4d5f56e
mov ecx, 0x649faf7b
xor edx, edx
div ecx
and eax, 0x552e7972
xor eax, 0xe05a6cac
and eax, 0x851b7231
cmp eax, 0x1dc8538f
jb 0x100413ca
mov eax, dword [ebp - 0x20]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [0x10147588]
or eax, dword [0x1014758c]
xor eax, 0xcc3fdc86
and eax, 0xf8b0a9a6
add eax, 0xd7965e34
imul eax, eax, 0x76f14641
or eax, 0x208f8150
xor eax, 0x192bdbe7
or eax, 0xda4aa967
xor eax, 0xd3482557
imul eax, eax, 0x9ca6add4
add eax, 0xd8b05361
or eax, 0xba3ace30
or eax, 0xf55cec55
sub eax, 0xb461e1f4
xor eax, 0x7479177b
imul eax, eax, 0xc5842532
or eax, 0x2ba9d19e
xor eax, 0x73772fba
or eax, 0xc8bfacec
imul eax, eax, 0x882180c7
and eax, 0xf024f024
add eax, 0x7de8a4d4
sub eax, 0x53bfb20c
sub eax, 0x7b6bdd64
imul eax, eax, 0xf1d5b260
and eax, 0xaea976b1
mov ecx, 0x637f4e89
xor edx, edx
div ecx
or eax, 0x847b21d9
and eax, 0x7ea0914f
add eax, 0x357f4a3b
xor eax, 0x78cd6425
xor eax, 0xfb02697b
add eax, 0x8c96f479
add eax, 0xd5dc05d3
cmp eax, 0x61c49576
jae 0x1004163c
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
mov eax, 0xed01b050
mov dword [ebp - 0x30], eax
push eax
mov esi, esp
push eax
mov edx, esp
push eax
mov ecx, esp
push eax
mov eax, esp
mov dword [esi], edi
mov edi, dword [ebp - 0x18]
mov dword [edx], edi
mov edi, dword [ebp - 0x10]
mov dword [ecx], ebx
mov dword [eax], edi
mov esi, dword [esi]
mov dword [ebp - 0x38], esi
mov ebx, dword [edx]
mov edi, dword [ecx]
mov esi, dword [eax]
call fcn.100416a0
mov ecx, dword [ebp - 0x38]
mov edx, dword [eax]
mov dword [ebp - 0x34], edx
mov edx, dword [eax + 4]
sub esp, 0x18
mov eax, esp
mov dword [eax + 0x14], ecx
mov ecx, dword [ebp - 0x34]
mov dword [eax + 0x10], ebx
mov dword [eax + 0xc], edi
mov dword [eax + 8], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.10121ea6
add esp, 0x18
mov eax, dword [ebp - 0x30]
cmp eax, 0x607a3ba5
jb 0x1004155f
jmp 0x100410d3
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
push eax
mov esi, esp
push eax
mov edx, esp
push eax
mov ecx, esp
push eax
mov eax, esp
mov dword [esi], edi
mov edi, dword [ebp - 0x18]
mov dword [edx], edi
mov edi, dword [ebp - 0x10]
mov dword [ecx], ebx
mov dword [eax], edi
mov esi, dword [esi]
mov dword [ebp - 0x40], esi
mov ebx, dword [edx]
mov edi, dword [ecx]
mov esi, dword [eax]
call fcn.100416a0
mov ecx, dword [ebp - 0x40]
mov edx, dword [eax]
mov dword [ebp - 0x3c], edx
mov edx, dword [eax + 4]
sub esp, 0x18
mov eax, esp
mov dword [eax + 0x14], ecx
mov ecx, dword [ebp - 0x3c]
mov dword [eax + 0x10], ebx
mov dword [eax + 0xc], edi
mov dword [eax + 8], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.10121ea6
add esp, 0x18
jmp 0x100411ab
jmp 0x100413ca
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
push eax
mov esi, esp
push eax
mov edx, esp
push eax
mov ecx, esp
push eax
mov eax, esp
mov dword [esi], edi
mov edi, dword [ebp - 0x18]
mov dword [edx], edi
mov edi, dword [ebp - 0x10]
mov dword [ecx], ebx
mov dword [eax], edi
mov esi, dword [esi]
mov dword [ebp - 0x48], esi
mov ebx, dword [edx]
mov edi, dword [ecx]
mov esi, dword [eax]
call fcn.100416a0
mov ecx, dword [ebp - 0x48]
mov edx, dword [eax]
mov dword [ebp - 0x44], edx
mov edx, dword [eax + 4]
sub esp, 0x18
mov eax, esp
mov dword [eax + 0x14], ecx
mov ecx, dword [ebp - 0x44]
mov dword [eax + 0x10], ebx
mov dword [eax + 0xc], edi
mov dword [eax + 8], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.10121ea6
add esp, 0x18
jmp 0x1004155f