Function at 0x10038170
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push esi
sub esp, 0x34
mov eax, dword [ebp + 8]
mov dword [ebp - 8], eax
mov eax, dword [0x10146048]
or eax, dword [0x1014604c]
add eax, 0x5e7b8831
imul eax, eax, 0x4f33f539
and eax, 0x71551a60
xor eax, 0xa02048d
and eax, 0x545b1292
sub eax, 0x93db31d5
imul eax, eax, 0xd7d95f2f
and eax, 0x8c3dc765
add eax, 0x862e65b9
mov ecx, 0x551fa254
xor edx, edx
div ecx
sub eax, 0xcf1a72ab
or eax, 0xc93f261c
sub eax, 0x6d5b281f
xor eax, 0x48f71b0
imul eax, eax, 0x23ac7a4b
or eax, 0xd7f12b62
xor eax, 0x8b99f4cc
or eax, 0x8fc90393
add eax, 0xe07cc2f8
xor eax, 0xac8cb7db
add eax, 0xbb21d3cd
or eax, 0xcdeb47e4
sub eax, 0xc7f1083a
and eax, 0xa1ff2a31
imul eax, eax, 0xdc39347f
and eax, 0xbb5b7023
and eax, 0xd109d7ef
imul eax, eax, 0x43bf6f2
or eax, 0xd550a3f4
sub eax, 0x16d6d840
and eax, 0x1fa955b4
sub eax, 0xd6d1d705
xor eax, 0xf15a28d7
cmp eax, 0xe425908b
jae 0x100385c4
mov eax, dword [0x10146050]
and eax, dword [0x10146054]
xor eax, 0xe47d2222
xor eax, 0xabdaaf02
or eax, 0xd9a60bc3
mov ecx, 0x521c0739
xor edx, edx
div ecx
mov ecx, 0xb05a4fe4
xor edx, edx
div ecx
mov ecx, 0x3443307e
xor edx, edx
div ecx
add eax, 0x6e0aea2e
mov ecx, 0x16032632
xor edx, edx
div ecx
xor eax, 0x68f3769b
or eax, 0x9077567c
and eax, 0x4d8b01c3
add eax, 0xf9e03ca1
xor eax, 0x5bd98352
or eax, 0x14b6a900
imul eax, eax, 0xb433f6d3
or eax, 0xbcf11395
or eax, 0x698d67c0
sub eax, 0x9fd23c04
mov ecx, 0x720630cc
xor edx, edx
div ecx
imul eax, eax, 0xb94703c
sub eax, 0x26ab9bdc
and eax, 0xcab22324
mov ecx, 0xb72d9779
xor edx, edx
div ecx
or eax, 0x6164b82f
or eax, 0xbd3d6af6
sub eax, 0xad007267
sub eax, 0x6ec69b5f
imul eax, eax, 0xc184d550
add eax, 0x61df71ec
imul eax, eax, 0xb9ff7e91
add eax, 0x8f76ca82
sub eax, 0x38c03419
or eax, 0x633ac59e
cmp eax, 0xfe9a49ff
jae 0x10038241
mov eax, dword [0x10146058]
sub eax, dword [0x1014605c]
and eax, 0x2c5b2087
xor eax, 0x4bee734f
and eax, 0x46e2f926
add eax, 0xcea19d8
add eax, 0x147e8507
imul eax, eax, 0x44c70af9
sub eax, 0x9f1cc37
imul eax, eax, 0x5b5f9dd9
sub eax, 0x91a28942
xor eax, 0x2b0f167
sub eax, 0xa4e25762
xor eax, 0xbe00932
add eax, 0xc57931b6
add eax, 0x5dee7ae0
mov ecx, 0x3d727e47
xor edx, edx
div ecx
imul eax, eax, 0x5cea2348
imul eax, eax, 0x9104db08
sub eax, 0xa048a211
sub eax, 0x527a7e42
and eax, 0x76b98abb
and eax, 0x49967c40
sub eax, 0x408cdec
mov ecx, 0xe203ee10
xor edx, edx
div ecx
mov ecx, 0x4369f3d0
xor edx, edx
div ecx
imul eax, eax, 0x9b42d1b6
xor eax, 0x8f6eae13
imul eax, eax, 0xd7d7a91c
xor eax, 0x5459316d
add eax, 0xba479680
xor eax, 0x54570228
xor eax, 0x8e970eb6
or eax, 0xa012d4b
xor eax, 0x25472486
cmp eax, 0x64f09a08
jb 0x1003846a
mov edx, dword [ebp - 8]
mov eax, 0x94b8d6e0
mov dword [ebp - 0x10], eax
push eax
mov eax, esp
push eax
mov ecx, esp
mov dword [ebp - 0x14], 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 - 0x18], ecx
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
sub esp, 4
mov dword [esp], 1
call fcn.10121cce
mov ecx, dword [ebp - 0x1c]
add esp, 4
mov edx, eax
mov eax, dword [ebp - 0x18]
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.10040fe0
mov ecx, dword [ebp - 0x14]
add esp, 0x10
mov edx, eax
mov eax, dword [ebp - 0x10]
mov dword [ecx], edx
mov ecx, dword [ecx]
mov dword [ebp - 0xc], ecx
cmp eax, 0xe072ed6
jb 0x1003846a
mov eax, dword [ebp - 0xc]
lea esp, [ebp - 4]
pop esi
pop ebp
ret
mov eax, dword [0x10146068]
or eax, dword [0x1014606c]
add eax, 0x121f0837
or eax, 0x8d6467cf
sub eax, 0x527d15e7
and eax, 0xb1b2eb38
mov ecx, 0x9803c44b
xor edx, edx
div ecx
mov ecx, 0x7f4cb8f2
xor edx, edx
div ecx
sub eax, 0xd810ffe6
mov ecx, 0x6a0cb1ca
xor edx, edx
div ecx
xor eax, 0xc0059c6d
imul eax, eax, 0x1a2f4fd4
and eax, 0xb44b29b
sub eax, 0xe72f9427
mov ecx, 0x4cd64782
xor edx, edx
div ecx
and eax, 0x1356dacd
or eax, 0x9cf3f04f
add eax, 0x17aa6b15
add eax, 0xcc859e9a
sub eax, 0x40a4d3a6
mov ecx, 0xb394d9e9
xor edx, edx
div ecx
xor eax, 0x1b1137ec
add eax, 0xf8ab2258
and eax, 0x86175e3c
mov ecx, 0x3ec1b98f
xor edx, edx
div ecx
imul eax, eax, 0x2d24e5f9
or eax, 0x25ac8618
and eax, 0x58116583
mov ecx, 0x3f8f508d
xor edx, edx
div ecx
sub eax, 0xf542e1e7
mov ecx, 0xb839ae6f
xor edx, edx
div ecx
and eax, 0x3db98d52
sub eax, 0x89df910c
imul eax, eax, 0xc1873572
and eax, 0xb266612b
cmp eax, 0x34c7be40
je 0x100385c9
mov edx, dword [ebp - 8]
mov eax, 0xc261b4fb
mov dword [ebp - 0x20], eax
push eax
mov eax, esp
push eax
mov ecx, esp
mov dword [ebp - 0x24], 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 - 0x28], ecx
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
sub esp, 4
mov dword [esp], 1
call fcn.10121cce
mov ecx, dword [ebp - 0x2c]
add esp, 4
mov edx, eax
mov eax, dword [ebp - 0x28]
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.10040fe0
mov ecx, dword [ebp - 0x24]
add esp, 0x10
mov edx, eax
mov eax, dword [ebp - 0x20]
mov dword [ecx], edx
cmp eax, 0xf4eafa2f
ja 0x10038548
jmp 0x100383e5
jmp 0x10038241
mov edx, dword [ebp - 8]
push eax
mov eax, esp
push eax
mov ecx, esp
mov dword [ebp - 0x30], 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 - 0x34], ecx
mov eax, dword [eax]
mov dword [ebp - 0x38], eax
sub esp, 4
mov dword [esp], 1
call fcn.10121cce
mov ecx, dword [ebp - 0x38]
add esp, 4
mov edx, eax
mov eax, dword [ebp - 0x34]
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.10040fe0
add esp, 0x10
mov ecx, eax
mov eax, dword [ebp - 0x30]
mov dword [eax], ecx
jmp 0x10038548