Function at 0x100c828
Capabilities:
Encode data using xor

Disassembly:
pushfd
push ebp
mov ebp, esp
sub esp, 0x50
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x40], edi
lea esi, [ebp + 4]
mov edi, dword [esi + 4]
sub esi, 4
push edi
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x14], edi
mov eax, edi
mov eax, 0x7dc74923
mov ebx, dword [edi + 4]
mov edx, dword [0x10051bc]
mov eax, 0xfffffff
mov edi, dword [edi + 8]
and dword [ebp - 0x24], 0
and dword [ebp - 0x20], 0
and edi, eax
and ebx, eax
pop ecx
mov eax, 0x1000000
mov ecx, eax
add edi, eax
sub ecx, edx
mov dword [ebp - 0x18], ecx
jne 0x100c8d5
and dword [ebp - 4], 0
test ebx, ebx
jbe 0x100cac8
mov esi, 0xe7b61e7c
mov ecx, esi
mov eax, dword [ebp - 4]
movzx eax, byte [edi + eax]
sub eax, 0x1849e184
add dword [ebp - 0x24], eax
add eax, dword [ebp - 0x20]
mul ecx
add eax, edx
mul ecx
add eax, edx
mov ecx, eax
imul ecx, ecx, 0xa097
rol ecx, 0xc
ror eax, 0xc
xor ecx, eax
add dword [ebp - 0x24], ecx
inc dword [ebp - 4]
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 4], ebx
jb 0x100c896
jmp 0x100cac5
mov edx, dword [0x100003c]
lea ecx, [ebx + edi]
mov dword [ebp - 0x1c], ecx
mov ecx, edi
sub ecx, eax
mov esi, ecx
and esi, 0xfffff000
mov dword [ebp - 4], esi
mov esi, ecx
sub esi, dword [ebp - 4]
add ecx, ebx
mov ebx, ecx
and ebx, 0xfffff000
sub ecx, ebx
mov dword [ebp - 0x34], ecx
mov ecx, dword [edx + 0x10000a0]
add ecx, eax
mov dword [ebp - 0x38], ebx
mov ebx, dword [edx + 0x10000a4]
add ebx, ecx
jmp 0x100c923
mov eax, dword [ebp - 4]
cmp dword [ecx], eax
jae 0x100c927
add ecx, dword [ecx + 4]
cmp ecx, ebx
jne 0x100c919
and dword [ebp - 0x28], 0
cmp ecx, ebx
je 0x100c962
mov eax, dword [ebp - 4]
cmp dword [ecx], eax
jne 0x100c962
mov eax, dword [ecx + 4]
sub eax, 8
shr eax, 1
je 0x100c962
lea edx, [ecx + 8]
mov dword [ebp - 4], edx
mov edx, dword [ebp - 4]
movzx edx, word [edx]
and edx, 0xfff
cmp edx, esi
jae 0x100c962
inc dword [ebp - 0x28]
add dword [ebp - 4], 2
cmp dword [ebp - 0x28], eax
jne 0x100c946
mov esi, 0xe7b61e7c
cmp ecx, ebx
je 0x100ca84
mov eax, dword [ebp - 0x38]
cmp dword [ecx], eax
ja 0x100ca84
mov eax, dword [ecx + 4]
lea edx, [eax - 8]
shr edx, 1
mov eax, dword [ebp - 0x28]
cmp eax, edx
jne 0x100c9a5
add ecx, dword [ecx + 4]
cmp ecx, ebx
je 0x100ca84
mov eax, dword [ebp - 0x38]
cmp dword [ecx], eax
ja 0x100ca84
and dword [ebp - 0x28], 0
jmp 0x100c97a
mov edx, dword [ebp - 0x38]
cmp dword [ecx], edx
jne 0x100c9bf
movzx eax, word [ecx + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x34]
jae 0x100ca84
mov edx, 0xf000
mov eax, dword [ebp - 0x28]
inc dword [ebp - 0x28]
test word [ecx + eax*2 + 8], dx
je 0x100c967
movzx eax, word [ecx + eax*2 + 8]
mov edx, dword [ecx]
and dword [ebp - 4], 0
and eax, 0xfff
lea eax, [eax + edx + 0x1000000]
mov dword [ebp - 8], eax
sub dword [ebp - 8], edi
mov dword [ebp - 0x10], eax
je 0x100ca37
mov edx, esi
mov eax, dword [ebp - 4]
movzx eax, byte [edi + eax]
sub eax, 0x1849e184
add dword [ebp - 0x24], eax
add eax, dword [ebp - 0x20]
mul edx
add eax, edx
mov edx, esi
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0xa097
rol edx, 0xc
ror eax, 0xc
xor edx, eax
mov eax, edx
add dword [ebp - 0x24], eax
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
mov dword [ebp - 0x20], edx
cmp eax, dword [ebp - 8]
jb 0x100c9f3
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
sub eax, dword [ebp - 0x18]
mov dword [ebp - 8], eax
xor edi, edi
movzx eax, byte [ebp + edi - 8]
mov edx, esi
sub eax, 0x1849e184
add dword [ebp - 0x24], eax
add eax, dword [ebp - 0x20]
mul edx
add eax, edx
mov edx, esi
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0xa097
rol edx, 0xc
ror eax, 0xc
xor edx, eax
add dword [ebp - 0x24], edx
mov dword [ebp - 0x20], edx
inc edi
cmp edi, 4
jb 0x100ca41
mov edi, dword [ebp - 0x10]
add edi, 4
jmp 0x100c967
mov eax, dword [ebp - 0x1c]
xor ebx, ebx
sub eax, edi
mov dword [ebp - 0x1c], eax
je 0x100cac5
movzx eax, byte [edi + ebx]
sub eax, 0x1849e184
add dword [ebp - 0x24], eax
mov ecx, esi
add eax, dword [ebp - 0x20]
mul ecx
add eax, edx
mul ecx
add eax, edx
mov ecx, eax
imul ecx, ecx, 0xa097
rol ecx, 0xc
ror eax, 0xc
xor ecx, eax
add dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], ecx
inc ebx
cmp ebx, dword [ebp - 0x1c]
jb 0x100ca90
mov esi, dword [ebp - 0xc]
add dword [esi + 8], 0x10
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x24]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x20]
and eax, 0xfffffff
sub ecx, dword [eax + 0x1000000]
sbb edx, dword [eax + 0x1000004]
mov eax, ecx
or eax, edx
je 0x100cba1
call fcn.0100d9b4
mov edx, 0xfffff000
lea ecx, [esi + 0xc]
and ecx, 0xfffffffc
lea edi, [ecx + 0xfff]
and eax, edx
and edi, edx
mov edx, 0xffff
mov dword [ebp - 0x1c], eax
mov dword [esi + 8], 0x1016d68
xor eax, eax
mov ebx, dword [0x1042fc4]
imul ebx, ebx, 0x343fd
add ebx, 0x269ec3
mov dword [0x1042fc4], ebx
shr ebx, 0x10
shl eax, 0x10
shr edx, 0x10
or eax, ebx
test edx, edx
jne 0x100cb1e
mov ebx, 0xffff
div ebx
mov eax, dword [ebp - 0x1c]
inc edx
cmp ecx, edi
mov dword [ebp - 0x4c], eax
mov eax, ecx
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x1c], 0
jae 0x100cb6f
mov ecx, dword [ebp - 0x1c]
mov dword [eax], ecx
add eax, 4
cmp eax, edi
jb 0x100cb63
mov eax, dword [ebp - 0x14]
mov dword [esi + 8], 0x1016d68
mov ecx, dword [ebp - 0x50]
mov edx, ecx
mov eax, dword [eax]
mov dword [ebp - 0x40], ecx
and eax, 0xfffffff
shl edx, 0x10
add eax, 0x1000000
xor edx, dword [eax]
xor edx, dword [0x1042f3c]
xor edx, ecx
and dword [ebp - 0x50], 0
mov dword [ebp - 0x44], edx
mov eax, 0x333e0031
mov edx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x50]
mov edi, dword [ebp - 0x40]
mov esp, ebp
pop ebp
popfd
ret