Function at 0x10021740
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push esi
sub esp, 0x44
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], eax
mov eax, dword [0x10146298]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [0x1013c0d4]
xor eax, dword [0x1013c0d8]
xor eax, 0xc9d70db2
add eax, 0x81ed6282
imul eax, eax, 0x9b416365
imul eax, eax, 0xd300c50f
imul eax, eax, 0x69417ca9
imul eax, eax, 0xa2418093
xor eax, 0xbed94fd4
imul eax, eax, 0x337c295f
add eax, 0x74bf5e08
xor eax, 0x5c3e1450
mov ecx, 0xbe43c7cb
xor edx, edx
div ecx
or eax, 0xc9942a44
xor eax, 0x964f38db
or eax, 0xac6c1387
add eax, 0x91a212db
or eax, 0x38b3eb02
mov ecx, 0x51ef8b8a
xor edx, edx
div ecx
or eax, 0x43e01e97
mov ecx, 0xfe0880ba
xor edx, edx
div ecx
mov ecx, 0xd2148a2c
xor edx, edx
div ecx
cmp eax, 0x8e0c70fa
je 0x10021a8f
mov eax, dword [0x1013c0dc]
add eax, dword [0x1013c0e0]
add eax, 0x5d6a09a8
or eax, 0x39e11065
imul eax, eax, 0xa35764a8
mov ecx, 0x7fe5abe1
xor edx, edx
div ecx
sub eax, 0xd960a9d7
and eax, 0x6911fc35
add eax, 0xd195b345
add eax, 0x303ff66
sub eax, 0x8da8005f
xor eax, 0x1a3b8e5d
or eax, 0x84cf5a29
add eax, 0x2ee0abe5
sub eax, 0xfacd0a68
and eax, 0x3e2be7d
mov ecx, 0xf0672d5e
xor edx, edx
div ecx
sub eax, 0xaa5fc096
sub eax, 0x78d3b7b0
mov ecx, 0x66289c5
xor edx, edx
div ecx
or eax, 0x9a9de45a
sub eax, 0x213df7d0
cmp eax, 0x302fea49
jbe 0x10021bf4
mov edx, dword [ebp - 0xc]
mov eax, 0xdd8b9ed0
mov dword [ebp - 0x14], eax
push eax
mov eax, esp
push eax
mov ecx, esp
mov dword [ebp - 0x18], ecx
push eax
mov ecx, esp
mov dword [eax], edx
lea edx, [ebp + 0xc]
mov dword [ecx], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x1c], ecx
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
sub esp, 4
mov dword [esp], 1
call fcn.100e72b6
mov ecx, dword [ebp - 0x20]
add esp, 4
mov edx, eax
mov eax, dword [ebp - 0x1c]
xor esi, esi
sub esp, 0x10
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
call fcn.100e0880
mov ecx, dword [ebp - 0x18]
add esp, 0x10
mov edx, eax
mov eax, dword [ebp - 0x14]
mov dword [ecx], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x10], ecx
cmp eax, 0x81bdc18d
je 0x1002186d
mov eax, dword [0x1013c0ec]
add eax, dword [0x1013c0f0]
add eax, 0x65f357ff
and eax, 0x79917834
xor eax, 0x3abcfd0d
add eax, 0x95e5e2d4
add eax, 0x3d9e3bca
add eax, 0xcb9691d3
mov ecx, 0xa7be117f
xor edx, edx
div ecx
or eax, 0x369d3cfe
xor eax, 0x4412380d
or eax, 0xc9988e34
mov ecx, 0xb767346d
xor edx, edx
div ecx
imul eax, eax, 0x187317d2
sub eax, 0x680be185
mov ecx, 0x131bdd3b
xor edx, edx
div ecx
imul eax, eax, 0x87d2298c
xor eax, 0x97264023
and eax, 0xb9915aa7
or eax, 0xa895aeda
imul eax, eax, 0xdc8e31e4
add eax, 0x2e105e99
cmp eax, 0x7a5858f7
je 0x100217e6
mov eax, dword [0x1013c0f4]
or eax, dword [0x1013c0f8]
xor eax, 0xae05b745
add eax, 0xdce51048
and eax, 0xf4dd2aff
imul eax, eax, 0x638ec302
sub eax, 0x557eb5a9
imul eax, eax, 0x608fd8b2
xor eax, 0xf41fd6f9
mov ecx, 0x6a3602e0
xor edx, edx
div ecx
add eax, 0x2a9ac14f
imul eax, eax, 0xff72ad29
xor eax, 0x824389b0
and eax, 0x54aad2bd
mov ecx, 0x9d3ae483
xor edx, edx
div ecx
add eax, 0x7fb5ec29
or eax, 0xedc9d1d9
imul eax, eax, 0xc6e68d7b
or eax, 0xcafc5dbe
and eax, 0xebae708f
xor eax, 0x4f8de44
imul eax, eax, 0xb3e2279a
cmp eax, 0x31d5f5a
jb 0x10021c5a
mov eax, dword [0x1013c0fc]
imul eax, dword [0x1013c100]
and eax, 0xd052e3b5
sub eax, 0xd9d43104
add eax, 0x2e3e5d23
sub eax, 0xb31e6334
and eax, 0x1926efe3
imul eax, eax, 0x4fc4f5f1
add eax, 0x4368e06d
mov ecx, 0x8e3b3e7a
xor edx, edx
div ecx
or eax, 0x51c9301e
or eax, 0xaae1d80a
imul eax, eax, 0x302cd170
xor eax, 0xa2ea73ed
add eax, 0x47f2647d
xor eax, 0x45b85b23
imul eax, eax, 0x2bde7548
and eax, 0xf3e6f265
add eax, 0x97f8e809
add eax, 0x6dbeb7f2
add eax, 0xe6bb9aaf
imul eax, eax, 0x8d93430d
cmp eax, 0x4b97923a
jae 0x100219f9
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100e332f
mov eax, dword [ebp - 0x10]
lea esp, [ebp - 4]
pop esi
pop ebp
ret
mov eax, dword [0x1013c104]
and eax, dword [0x1013c108]
add eax, 0x1dea019a
xor eax, 0x6441ecb4
sub eax, 0x602ef467
add eax, 0xf1db0e3c
and eax, 0x81ea4913
add eax, 0xe606d45d
and eax, 0xcfc28a9e
or eax, 0xeb5e6f6c
and eax, 0xec1af7b
or eax, 0xf627d9ee
add eax, 0x97eaa1d2
sub eax, 0x7d916e5
mov ecx, 0xeccd014b
xor edx, edx
div ecx
sub eax, 0x37c7647
mov ecx, 0x5e61b146
xor edx, edx
div ecx
mov ecx, 0x3c1b5747
xor edx, edx
div ecx
mov ecx, 0xf6da7432
xor edx, edx
div ecx
mov ecx, 0xaadfa3c7
xor edx, edx
div ecx
or eax, 0x3e38d888
or eax, 0x2b5c5ddd
cmp eax, 0x5c74e543
je 0x10021c5f
mov eax, dword [0x1013c10c]
mov ecx, dword [0x1013c110]
or eax, ecx
add eax, 0x8e86fea3
mov ecx, 0x3378bb0d
mul ecx
mov eax, edx
mov edx, dword [ebp - 0xc]
shr eax, 0x1d
xor eax, 0x65ae3627
add eax, 0xa65256f
and eax, 0x60130b13
xor eax, 0xe8196f0
imul eax, eax, 0x31a05aef
add eax, 0x313d1e87
and eax, 0x58a543a6
add eax, 0xf8d6aad0
or eax, 0x210f080
and eax, 0x421bf580
xor eax, 0x86031bc
add eax, 0x4ebe496
or eax, 0xa67e80ac
mov dword [ebp - 0x24], eax
push eax
mov eax, esp
push eax
mov ecx, esp
mov dword [ebp - 0x28], ecx
push eax
mov ecx, esp
mov dword [eax], edx
lea edx, [ebp + 0xc]
mov dword [ecx], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x2c], ecx
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
sub esp, 4
mov dword [esp], 1
call fcn.100e72b6
mov ecx, dword [ebp - 0x30]
add esp, 4
mov edx, eax
mov eax, dword [ebp - 0x2c]
xor esi, esi
sub esp, 0x10
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
call fcn.100e0880
mov ecx, dword [ebp - 0x28]
add esp, 0x10
mov edx, eax
mov eax, dword [ebp - 0x24]
mov dword [ecx], edx
cmp eax, 0x706349ed
jbe 0x10021b1d
jmp 0x100217e6
mov edx, dword [ebp - 0xc]
push eax
mov eax, esp
push eax
mov ecx, esp
mov dword [ebp - 0x34], ecx
push eax
mov ecx, esp
mov dword [eax], edx
lea edx, [ebp + 0xc]
mov dword [ecx], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x38], ecx
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
sub esp, 4
mov dword [esp], 1
call fcn.100e72b6
mov ecx, dword [ebp - 0x3c]
add esp, 4
mov edx, eax
mov eax, dword [ebp - 0x38]
xor esi, esi
sub esp, 0x10
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
call fcn.100e0880
add esp, 0x10
mov ecx, eax
mov eax, dword [ebp - 0x34]
mov dword [eax], ecx
jmp 0x1002186d
jmp 0x100219f9
mov edx, dword [ebp - 0xc]
push eax
mov eax, esp
push eax
mov ecx, esp
mov dword [ebp - 0x40], ecx
push eax
mov ecx, esp
mov dword [eax], edx
lea edx, [ebp + 0xc]
mov dword [ecx], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x44], ecx
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
sub esp, 4
mov dword [esp], 1
call fcn.100e72b6
mov ecx, dword [ebp - 0x48]
add esp, 4
mov edx, eax
mov eax, dword [ebp - 0x44]
xor esi, esi
sub esp, 0x10
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
call fcn.100e0880
add esp, 0x10
mov ecx, eax
mov eax, dword [ebp - 0x40]
mov dword [eax], ecx
jmp 0x10021b1d