Function at 0x1000e310
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
mov ebx, dword [ebp + 0x20]
lea edx, [eax + 0xcea]
push esi
mov ecx, eax
push edi
mov edi, dword [ebp + 0x18]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x20], edx
cmp eax, edx
ja 0x1000ea2a
mov esi, dword [ebp - 0x20]
jmp 0x1000e346
mov edi, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x20]
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp - 0xc]
cmp ecx, 0x126c
ja 0x1000e69c
je 0x1000ea2a
cmp ecx, 0x1188
ja 0x1000e61f
je 0x1000e614
add ecx, 0xffffef5c
cmp ecx, 0xab
ja case.0x1000e389.4261
movzx ecx, byte [ecx + 0x1000ea48]
jmp dword [ecx*4 + 0x1000ea34]
mov eax, dword [edi]
mov edx, dword [ebp - 0x20]
mov esi, eax
mov ecx, eax
shl esi, 0x10
and ecx, 0xff00
add esi, ecx
shr eax, 8
mov dword [ebp - 0xc], edx
movzx edx, byte [edi + 3]
shl esi, 8
and eax, 0xff00
add esi, eax
add esi, edx
jmp case.0x1000e389.4261
mov edi, dword [ebp + 0x10]
cmp dword [edi], 0
not esi
je case.0x1000e389.4261
lea ecx, [ecx]
mov edx, dword [ebp + 0x14]
test dl, 3
je case.0x1000e389.4261
mov ecx, 0x65cf
mov eax, ecx
sub eax, 0x65cf
je 0x1000e3f3
sub eax, 0x43
jne 0x1000e408
dec dword [edi]
jmp 0x1000e408
movzx ebx, byte [edx]
mov eax, esi
shr eax, 0x18
xor eax, ebx
shl esi, 8
xor esi, dword [eax*4 + 0x100372b8]
inc edx
add ecx, 0x43
cmp ecx, 0x6612
jbe 0x1000e3e1
cmp dword [edi], 0
mov dword [ebp + 0x14], edx
jne 0x1000e3d0
jmp case.0x1000e389.4261
mov ecx, dword [ebp + 0x14]
add ecx, 0xfffffffc
mov dword [ebp - 0xc], ecx
jmp case.0x1000e389.4261
mov edi, dword [ebp + 0x10]
cmp dword [edi], 0x20
jb 0x1000e4cd
lea ebx, [ebx]
mov edx, 0x4e
cmp edx, 0x27c
ja 0x1000e563
je 0x1000e477
cmp edx, 0x165
ja 0x1000e50d
je 0x1000e472
mov ecx, edx
sub ecx, 0x4e
je 0x1000e472
sub ecx, 0x5d
je 0x1000e472
sub ecx, 0x5d
jne 0x1000e4b6
add eax, 4
xor esi, dword [eax]
mov ecx, esi
shr ecx, 0x10
mov ebx, esi
shr ebx, 8
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x10037ab8]
and ebx, 0xff
xor ecx, dword [ebx*4 + 0x100376b8]
mov ebx, esi
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x10037eb8]
and esi, 0xff
xor ecx, dword [esi*4 + 0x100372b8]
mov esi, ecx
add edx, 0x5d
cmp edx, 0x44d
jbe 0x1000e445
cmp dword [edi], 0x20
jae 0x1000e440
mov dword [ebp - 0xc], eax
cmp dword [edi], 4
jb case.0x1000e389.4261
jmp 0x1000e4e0
mov edx, 0x16ef
mov ecx, edx
sub ecx, 0x16ef
je 0x1000e5ef
sub ecx, 0x55
je 0x1000e5ae
sub ecx, 0x55
jne 0x1000e5f4
add dword [edi], 0xfffffffc
jmp 0x1000e5f4
mov ecx, edx
sub ecx, 0x1c2
je 0x1000e585
sub ecx, 0x5d
jne 0x1000e4b6
mov ecx, esi
shr ecx, 0x10
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x10037ab8]
mov ebx, esi
shr ebx, 8
and ebx, 0xff
xor ecx, dword [ebx*4 + 0x100376b8]
mov ebx, esi
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x10037eb8]
and esi, 0xff
xor ecx, dword [esi*4 + 0x100372b8]
add eax, 4
xor ecx, dword [eax]
jmp 0x1000e4b4
cmp edx, 0x393
ja 0x1000e58f
je 0x1000e585
mov ecx, edx
sub ecx, 0x2d9
je 0x1000e585
sub ecx, 0x5d
jne 0x1000e4b6
jmp 0x1000e477
add eax, 4
xor esi, dword [eax]
jmp 0x1000e4b6
mov ecx, edx
sub ecx, 0x3f0
je 0x1000e477
sub ecx, 0x5d
jne 0x1000e4b6
add dword [edi], 0xffffffe0
jmp 0x1000e4b6
mov ecx, esi
shr ecx, 0x10
mov ebx, esi
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x10037ab8]
shr ebx, 8
and ebx, 0xff
xor ecx, dword [ebx*4 + 0x100376b8]
mov ebx, esi
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x10037eb8]
and esi, 0xff
xor ecx, dword [esi*4 + 0x100372b8]
mov esi, ecx
jmp 0x1000e5f4
add eax, 4
xor esi, dword [eax]
add edx, 0x55
cmp edx, 0x1799
jbe 0x1000e4e5
cmp dword [edi], 4
jae 0x1000e4e0
mov dword [ebp - 0xc], eax
jmp case.0x1000e389.4261
add eax, 4
mov dword [ebp - 0xc], eax
jmp case.0x1000e389.4261
sub ecx, 0x11c1
je 0x1000e669
sub ecx, 0x39
je 0x1000e662
sub ecx, 0x39
jne case.0x1000e389.4261
mov eax, esi
and eax, 0xff00
mov edx, esi
shl edx, 0x10
add eax, edx
mov ecx, esi
shr ecx, 8
shl eax, 8
and ecx, 0xff00
mov edx, esi
add eax, ecx
shr edx, 0x18
add eax, edx
mov dword [ebp - 0x10], eax
jmp case.0x1000e389.4261
not esi
jmp case.0x1000e389.4261
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 0
mov dword [ebp + 0x14], eax
je case.0x1000e389.4261
mov eax, dword [ebp + 0x14]
movzx edi, byte [eax]
mov edx, esi
shr edx, 0x18
xor edx, edi
shl esi, 8
xor esi, dword [edx*4 + 0x100372b8]
inc eax
dec dword [ecx]
mov dword [ebp + 0x14], eax
jne 0x1000e678
jmp case.0x1000e389.4261
cmp ecx, 0x165a
ja 0x1000e9e1
je 0x1000e96e
lea eax, [ecx - 0x1576]
cmp eax, 0xab
ja case.0x1000e389.4261
movzx eax, byte [eax + 0x1000eb08]
jmp dword [eax*4 + 0x1000eaf4]
mov ecx, dword [edi + 8]
mov edx, dword [ebp - 8]
cmp edx, dword [ecx + 0x2c]
jbe case.0x1000e389.4261
cmp dword [edi + 4], 0
mov dword [ebp - 4], 0
jle case.0x1000e389.4261
xor ebx, ebx
nop
mov eax, 0x36a8
mov dword [ebp - 0x14], eax
sub eax, 0x36a8
je 0x1000e728
sub eax, 0x38
jne 0x1000e73e
mov eax, dword [ebp - 0x1c]
mov edx, dword [edi + 8]
lea ecx, [eax*8]
mov eax, dword [edx + ebx + 0x28]
push ecx
push eax
call fcn.10026519
mov ecx, dword [edi + 8]
add esp, 8
mov dword [ecx + ebx + 0x28], eax
jmp 0x1000e73e
mov edx, dword [ebp - 8]
push edx
call fcn.1000c0f0
mov ecx, dword [edi + 8]
add esp, 4
mov dword [ecx + ebx + 0x2c], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
add eax, 0x38
mov dword [ebp - 0x14], eax
cmp eax, 0x36e0
jbe 0x1000e6f8
mov eax, dword [ebp - 4]
inc eax
add ebx, 0x38
mov dword [ebp - 4], eax
cmp eax, dword [edi + 4]
jl 0x1000e6f0
jmp case.0x1000e389.4261
xor ebx, ebx
mov dword [ebp - 4], ebx
cmp dword [edi + 4], ebx
jle 0x1000e84b
xor ecx, ecx
xor eax, eax
cmp dword [ebp - 8], 4
jl 0x1000e809
mov edx, dword [ebp + 0x14]
mov edi, dword [edx + ebx*4]
mov dword [ebp - 0x14], edi
lea edx, [eax + 2]
mov ebx, dword [ebp + 0xc]
mov ebx, dword [ebx]
imul ebx, eax
add eax, 4
fld dword [edi + ebx*4]
mov edi, dword [ebp + 0x18]
mov edi, dword [edi + 8]
mov edi, dword [ecx + edi + 0x28]
lea ebx, [edx - 1]
fstp qword [edi + eax*8 - 0x20]
mov edi, dword [ebp + 0xc]
imul ebx, dword [edi]
mov edi, dword [ebp - 0x14]
fld dword [edi + ebx*4]
mov ebx, dword [ebp + 0x18]
mov ebx, dword [ebx + 8]
mov ebx, dword [ecx + ebx + 0x28]
fstp qword [ebx + eax*8 - 0x18]
mov ebx, dword [ebp + 0xc]
mov ebx, dword [ebx]
imul ebx, edx
fld dword [edi + ebx*4]
mov edi, dword [ebp + 0x18]
mov edi, dword [edi + 8]
mov edi, dword [ecx + edi + 0x28]
fstp qword [edi + eax*8 - 0x10]
mov edi, dword [ebp + 0xc]
lea ebx, [edx + 1]
imul ebx, dword [edi]
mov edi, dword [ebp - 0x14]
add edx, 4
fld dword [edi + ebx*4]
mov ebx, dword [ebp + 0x18]
mov ebx, dword [ebx + 8]
mov ebx, dword [ecx + ebx + 0x28]
fstp qword [ebx + eax*8 - 8]
mov ebx, dword [ebp - 8]
add ebx, 0xfffffffd
cmp eax, ebx
jb 0x1000e78a
mov ebx, dword [ebp - 4]
cmp eax, dword [ebp - 8]
jae 0x1000e838
mov edx, dword [ebp + 0x14]
mov edi, dword [edx + ebx*4]
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebp + 0xc]
mov ebx, dword [ebx]
imul ebx, eax
inc eax
fld dword [edi + ebx*4]
mov ebx, dword [edx + 8]
mov ebx, dword [ecx + ebx + 0x28]
fstp qword [ebx + eax*8 - 8]
cmp eax, dword [ebp - 8]
jb 0x1000e817
mov ebx, dword [ebp - 4]
jmp 0x1000e83b
mov edx, dword [ebp + 0x18]
inc ebx
add ecx, 0x38
mov dword [ebp - 4], ebx
cmp ebx, dword [edx + 4]
jl 0x1000e772
mov eax, dword [ebp + 0x18]
call fcn.1000c150
test eax, eax
jns case.0x1000e389.4261
mov ecx, 0x709a
mov eax, ecx
sub eax, 0x709a
je 0x1000e874
sub eax, 0x1e
je 0x1000ea2a
jmp 0x1000e87b
mov dword [ebp - 0x10], 0xffffffff
add ecx, 0x1e
cmp ecx, 0x70b8
jbe 0x1000e860
jmp case.0x1000e389.4261
test ebx, ebx
je 0x1000e899
mov eax, dword [ebx]
mov dword [ebp - 8], eax
jmp case.0x1000e389.4261
xor eax, eax
mov dword [ebp - 8], eax
jmp case.0x1000e389.4261
mov eax, dword [edi + 8]
mov ecx, dword [edx]
cmp ecx, dword [eax + 0x34]
jbe 0x1000e91f
cmp dword [edi + 4], 0
mov dword [ebp - 4], 0
jle 0x1000e91f
xor ebx, ebx
lea esp, [esp]
mov eax, 0x2f78
mov dword [ebp - 0x14], eax
cmp eax, eax
jne 0x1000e903
mov edx, dword [ebp + 0x1c]
mov eax, dword [edx]
push eax
call fcn.1000c0f0
mov ecx, dword [edi + 8]
mov dword [ebx + ecx + 0x34], eax
lea edx, [eax*8]
mov eax, dword [edi + 8]
mov ecx, dword [ebx + eax + 0x30]
add esp, 4
push edx
push ecx
call fcn.10026519
mov edx, dword [edi + 8]
mov dword [ebx + edx + 0x30], eax
mov eax, dword [ebp - 0x14]
add esp, 8
add eax, 0x23
mov dword [ebp - 0x14], eax
cmp eax, 0x2f78
jbe 0x1000e8ca
mov eax, dword [ebp - 4]
inc eax
add ebx, 0x38
mov dword [ebp - 4], eax
cmp eax, dword [edi + 4]
jl 0x1000e8c0
xor eax, eax
mov dword [ebp - 4], eax
cmp dword [edi + 4], eax
jle case.0x1000e389.4261
lea ecx, [ecx]
mov ecx, 0x3518
cmp ecx, ecx
jne 0x1000e94f
mov edx, dword [edi + 8]
mov ebx, dword [ebp - 8]
mov dword [eax + edx + 0x20], ebx
mov ebx, dword [ebp + 0x1c]
mov edx, dword [edi + 8]
mov ebx, dword [ebx]
mov dword [eax + edx + 0x24], ebx
add ecx, 0x16
cmp ecx, 0x3518
jbe 0x1000e937
mov ecx, dword [ebp - 4]
inc ecx
add eax, 0x38
mov dword [ebp - 4], ecx
cmp ecx, dword [edi + 4]
jl 0x1000e930
jmp case.0x1000e389.4261
cmp dword [edi + 4], 0
mov dword [ebp - 4], 0
jle case.0x1000e389.4261
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 8]
mov edx, dword [ebp + 0x10]
mov ecx, dword [eax + 0x24]
xor ebx, ebx
mov dword [ebp - 0x14], edx
xor edi, edi
test ecx, ecx
je 0x1000e9c9
mov eax, dword [ebx + eax + 0x30]
fld qword [eax + edi*8]
sub esp, 8
fstp qword [esp]
call fcn.10021930
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x14]
imul edx, edi
mov ecx, dword [eax]
inc edi
add esp, 8
fstp dword [ecx + edx*4]
mov edx, dword [ebp + 0x18]
mov eax, dword [edx + 8]
mov ecx, dword [eax + 0x24]
cmp edi, ecx
jb 0x1000e996
mov edx, dword [ebp - 4]
mov edi, dword [ebp + 0x18]
add dword [ebp - 0x14], 4
inc edx
add ebx, 0x38
mov dword [ebp - 4], edx
cmp edx, dword [edi + 4]
jl 0x1000e990
jmp case.0x1000e389.4261
mov eax, ecx
sub eax, 0x1693
je 0x1000ea07
sub eax, 0x39
je 0x1000e9f6
sub eax, 0x39
je 0x1000ea2a
jmp case.0x1000e389.4261
mov eax, dword [edi + 8]
mov ecx, dword [eax + 0x24]
mov dword [edx], ecx
mov dword [ebp - 0x10], 0
jmp case.0x1000e389.4261
test ebx, ebx
je case.0x1000e389.4261
cmp dword [ebx], 0
je case.0x1000e389.4261
mov edx, dword [edi + 8]
mov eax, dword [edx + 0x20]
mov dword [ebx], eax
mov ecx, dword [ebp - 0x18]
add ecx, 0x39
mov dword [ebp - 0x18], ecx
cmp ecx, dword [ebp - 0x20]
jbe 0x1000e340
mov eax, dword [ebp - 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret