Function at 0x100f29c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x50
mov dword [ebp - 0x24], ecx
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 [0x1014e048]
add eax, dword [0x1014e04c]
and eax, 0xae484f27
add eax, 0x4746e56
sub eax, 0xe6cf7eba
mov ecx, 0xda468b2a
xor edx, edx
div ecx
xor eax, 0x3c2f536e
and eax, 0xa26740cc
sub eax, 0xd4ef4a6d
add eax, 0xc1d9066c
and eax, 0x8007dcf8
add eax, 0x31a4f89b
imul eax, eax, 0x11ccd225
or eax, 0x1db173ac
imul eax, eax, 0x72cae333
imul eax, eax, 0xce849a0
xor eax, 0x57127fd9
or eax, 0xd291c5a3
add eax, 0x12b28ca0
xor eax, 0x2fc03ab9
mov ecx, 0xa7a7084d
xor edx, edx
div ecx
sub eax, 0x7cc2a62c
imul eax, eax, 0x838b5786
add eax, 0x27e1afc1
or eax, 0x475c603f
or eax, 0x97edb409
and eax, 0x4ea0f025
or eax, 0x95225502
add eax, 0x833ffb96
mov ecx, 0x6c3c513f
xor edx, edx
div ecx
and eax, 0x8fcfd571
sub eax, 0xc2429fa5
xor eax, 0x1195614b
sub eax, 0xbbda7faa
and eax, 0x961b1b4c
cmp eax, 0x8dfd257c
je 0x100f2f7a
mov eax, dword [0x1014e050]
add eax, dword [0x1014e054]
add eax, 0x7fc32c46
mov ecx, 0xffde7fd8
xor edx, edx
div ecx
xor eax, 0x520d8d44
imul eax, eax, 0xd7689d8f
xor eax, 0x2ae3080c
xor eax, 0xda54406b
imul eax, eax, 0xba2509ba
mov ecx, 0xad4b09b4
xor edx, edx
div ecx
mov ecx, 0x609cb9b3
xor edx, edx
div ecx
and eax, 0x98072f70
and eax, 0xfdc8ebd0
add eax, 0x4a0f03cd
add eax, 0x30bf4488
and eax, 0x44fb837f
xor eax, 0xeeaec7e0
xor eax, 0x4d479f98
and eax, 0x9720474e
mov ecx, 0x95a684df
xor edx, edx
div ecx
and eax, 0x64da777
imul eax, eax, 0x9e33db6c
mov ecx, 0x9bb74e6f
xor edx, edx
div ecx
mov ecx, 0x15d7d0e5
xor edx, edx
div ecx
add eax, 0x6aeed9ef
and eax, 0xb79e91b1
and eax, 0xdff81faa
xor eax, 0x58dc538c
xor eax, 0xdacfff7f
add eax, 0xade0e359
or eax, 0xbc2f9169
xor eax, 0xab3176e4
mov ecx, 0x7abe75c6
xor edx, edx
div ecx
imul eax, eax, 0x334c07c0
and eax, 0x93ee0dd9
cmp eax, 0xfa903b08
ja 0x100f2ab5
mov eax, dword [0x1014e058]
sub eax, dword [0x1014e05c]
imul eax, eax, 0x13c3319e
and eax, 0x9449ec1d
mov ecx, 0x8d292b1
xor edx, edx
div ecx
xor eax, 0xfe4a195f
and eax, 0x42c807
sub eax, 0xf272389b
sub eax, 0x668e484a
xor eax, 0x79fc2518
and eax, 0x13a7c09a
mov ecx, 0xbea5176d
xor edx, edx
div ecx
mov ecx, 0xcffa84e0
xor edx, edx
div ecx
xor eax, 0x519dfd89
xor eax, 0x1910e927
imul eax, eax, 0xc710d1ac
mov ecx, 0x25c9c94b
xor edx, edx
div ecx
mov ecx, 0xf8db0fba
xor edx, edx
div ecx
sub eax, 0xdbb312a5
xor eax, 0x912b0603
mov ecx, 0x9dffde49
xor edx, edx
div ecx
mov ecx, 0x34ee478d
xor edx, edx
div ecx
imul eax, eax, 0x9f7fb897
imul eax, eax, 0x897bc320
xor eax, 0x899e7855
imul eax, eax, 0xce4d8cc6
mov ecx, 0x25e89869
xor edx, edx
div ecx
mov ecx, 0xff49d9d6
xor edx, edx
div ecx
imul eax, eax, 0xe12b5dd1
mov ecx, 0x3150cbbc
xor edx, edx
div ecx
add eax, 0x641821b3
and eax, 0x45dc61e0
or eax, 0xaca37992
add eax, 0x847e16f
xor eax, 0x2dc23ac
cmp eax, 0x11976170
jb 0x100f2dd3
mov ebx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x1c]
mov eax, dword [0x1014e060]
mov ecx, dword [0x1014e064]
imul eax, ecx
or eax, 0xa3c
imul eax, eax, 0x363a7811
xor eax, 0x800
or eax, 0x4072
and eax, 0x4b76
imul eax, eax, 0x4e2d2670
not eax
and eax, 0x8000
add eax, 0x46a5b997
and eax, 0x1a897
add eax, 0x1792575
xor eax, 0x2e089b32
imul eax, eax, 0x1353986e
add eax, 0x53021f37
xor eax, 0x2548875d
imul eax, eax, 0xfa0d9710
add eax, 0x60e715f3
or eax, 0xb4e1bac1
imul eax, eax, 0xd16d4cb5
add eax, 0xefd3b8b0
or eax, 0x83cfcf3
imul eax, eax, 0x7fea5f78
xor eax, 0x42050
or eax, 0x43c29e2b
and eax, 0x4be6be7b
mov dword [ebp - 0x28], eax
push eax
mov esi, esp
push eax
mov eax, esp
mov dword [ebp - 0x38], eax
push eax
mov eax, esp
mov dword [ebp - 0x30], eax
push eax
mov ecx, esp
push eax
mov eax, esp
mov dword [ebp - 0x34], eax
push eax
mov eax, esp
push eax
mov edx, esp
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x20]
mov dword [esi], edx
mov edx, dword [ebp - 0x38]
mov dword [edx], edi
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x30]
mov dword [edx], edi
mov edi, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
mov dword [ecx], edx
mov edx, dword [ebp - 0x34]
mov dword [edx], edi
mov edi, dword [ebp - 0x30]
mov dword [eax], ebx
mov eax, dword [edi]
mov ecx, dword [ecx]
mov edx, dword [edx]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.10085780
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
add esp, 0xc
mov eax, dword [esi]
mov ecx, dword [ecx]
mov edx, dword [edx]
add edx, dword [edi]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.10085780
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x30]
add esp, 0xc
mov eax, dword [ebp - 0x2c]
mov byte [eax], 0
mov ecx, dword [ecx]
mov edx, dword [edx]
add edx, dword [esi]
add ecx, edx
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10090ed0
mov eax, dword [ebp - 0x28]
add esp, 8
cmp eax, 0xf9ca89a4
jae 0x100f2dd3
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x14
mov eax, dword [0x1014e068]
imul eax, dword [0x1014e06c]
imul eax, eax, 0xec46a334
sub eax, 0xab6b358d
or eax, 0x36ebf56a
add eax, 0x3247d3f
mov ecx, 0xa365faea
xor edx, edx
div ecx
sub eax, 0xb78a0f5c
xor eax, 0xdddfcea3
and eax, 0x88fbfa54
xor eax, 0x936b82b9
add eax, 0xb0b0ed02
sub eax, 0xd1b9e394
imul eax, eax, 0xce6d47d
mov ecx, 0x20f27082
xor edx, edx
div ecx
or eax, 0x840a259
imul eax, eax, 0x15bb9ee7
imul eax, eax, 0x7f0f064c
xor eax, 0xf5809bf4
or eax, 0xb91f6864
mov ecx, 0x487724c
xor edx, edx
div ecx
sub eax, 0xfe1b2110
and eax, 0xe4299acb
or eax, 0x47889b94
imul eax, eax, 0x484ba76b
or eax, 0x5090cbe4
mov ecx, 0x8966c069
xor edx, edx
div ecx
mov ecx, 0xfafa2232
xor edx, edx
div ecx
or eax, 0xd1ff9930
add eax, 0x9a29d6a5
xor eax, 0x1e359bf7
mov ecx, 0x6aeb31d4
xor edx, edx
div ecx
or eax, 0x56bbd555
xor eax, 0xe94dbeaf
or eax, 0x65fa45f7
cmp eax, 0xa2d704ce
jb 0x100f2f7f
mov ebx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x1c]
mov eax, 0x498c13e8
mov dword [ebp - 0x3c], eax
push eax
mov esi, esp
push eax
mov eax, esp
mov dword [ebp - 0x4c], eax
push eax
mov eax, esp
mov dword [ebp - 0x44], eax
push eax
mov ecx, esp
push eax
mov eax, esp
mov dword [ebp - 0x48], eax
push eax
mov eax, esp
push eax
mov edx, esp
mov dword [ebp - 0x40], edx
mov edx, dword [ebp - 0x20]
mov dword [esi], edx
mov edx, dword [ebp - 0x4c]
mov dword [edx], edi
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x44]
mov dword [edx], edi
mov edi, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
mov dword [ecx], edx
mov edx, dword [ebp - 0x48]
mov dword [edx], edi
mov edi, dword [ebp - 0x44]
mov dword [eax], ebx
mov eax, dword [edi]
mov ecx, dword [ecx]
mov edx, dword [edx]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.10085780
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x48]
add esp, 0xc
mov eax, dword [esi]
mov ecx, dword [ecx]
mov edx, dword [edx]
add edx, dword [edi]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.10085780
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
add esp, 0xc
mov eax, dword [ebp - 0x40]
mov byte [eax], 0
mov ecx, dword [ecx]
mov edx, dword [edx]
mov esi, dword [esi]
add edx, esi
add ecx, edx
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10090ed0
mov eax, dword [ebp - 0x3c]
add esp, 8
cmp eax, 0x2a7a5e7
jb 0x100f2f7f
jmp 0x100f2c79
jmp 0x100f2ab5
mov ebx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x1c]
push eax
mov esi, esp
push eax
mov eax, esp
mov dword [ebp - 0x5c], eax
push eax
mov eax, esp
mov dword [ebp - 0x54], eax
push eax
mov ecx, esp
push eax
mov eax, esp
mov dword [ebp - 0x58], eax
push eax
mov eax, esp
push eax
mov edx, esp
mov dword [ebp - 0x50], edx
mov edx, dword [ebp - 0x20]
mov dword [esi], edx
mov edx, dword [ebp - 0x5c]
mov dword [edx], edi
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x54]
mov dword [edx], edi
mov edi, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
mov dword [ecx], edx
mov edx, dword [ebp - 0x58]
mov dword [edx], edi
mov edi, dword [ebp - 0x54]
mov dword [eax], ebx
mov eax, dword [edi]
mov ecx, dword [ecx]
mov edx, dword [edx]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.10085780
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
add esp, 0xc
mov eax, dword [esi]
mov ecx, dword [ecx]
mov edx, dword [edx]
add edx, dword [edi]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.10085780
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
add esp, 0xc
mov eax, dword [ebp - 0x50]
mov byte [eax], 0
mov ecx, dword [ecx]
mov edx, dword [edx]
mov esi, dword [esi]
add edx, esi
add ecx, edx
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10090ed0
add esp, 8
jmp 0x100f2eac