Function at 0x100eed5a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [esi + 0x120]
mov eax, dword [edi + 0x14b18]
mov dword [ebp - 0x28], eax
mov eax, dword [edi + 0x14b1c]
mov dword [ebp - 0x2c], eax
mov eax, 0xa
sub eax, dword [esi + 0xa4]
lea eax, [eax + eax*4]
add eax, eax
sub eax, dword [esi + 0x2c]
mov dword [ebp - 0x1c], eax
call fcn.100ef480
movd xmm0, dword [edi + 0x38]
cvtdq2pd xmm0, xmm0
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x34], 0x2030501
mov word [ebp - 0x30], 4
mov byte [ebp - 0x2e], 3
movsd xmm1, qword [0x10221420]
divsd xmm0, qword [0x1017d118]
addsd xmm0, qword [0x102511d8]
comisd xmm0, xmm1
ja 0x100eebdc
movaps xmm1, xmm0
mov edx, dword [esi + 0x48]
mov ecx, dword [edi + 0x6c]
mov esi, dword [esi + 0x4c]
cvttsd2si eax, xmm1
push ebx
xor bh, bh
mov dword [ebp - 0x14], 0
xor bl, bl
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x24], eax
mov al, byte [edi + 0x20]
mov byte [ebp - 2], al
mov al, byte [edi + 0xd4]
mov byte [ebp - 1], al
test ecx, ecx
je 0x100eec46
cmp ecx, 3
je 0x100eec41
mov eax, dword [edi + 0x14]
shl eax, 4
add eax, dword [edi + 0x74]
mov eax, dword [eax*4 + 0x10223158]
mov dword [ebp - 8], eax
cmp ecx, 7
jb 0x100eec4c
mov byte [ebp + 0xb], bl
mov dword [ebp - 8], eax
jmp 0x100eec53
mov eax, dword [edi + 0x70]
jmp 0x100eec49
mov eax, dword [edi + 0x7c]
mov dword [ebp - 8], eax
mov al, byte [ebp + ecx - 0x34]
mov byte [ebp + 0xb], al
cmp dword [edi + 0x84], 0
je 0x100eec94
mov ecx, dword [edi + 0x14eb8]
cmp ecx, 0x1fe
jle 0x100eec76
mov eax, 0x1fe
or eax, 0x2c00
jmp 0x100eec8e
cmp ecx, 0xfffffe02
jge 0x100eed2e
mov eax, 0xfe02
neg eax
or eax, 0x2e00
movzx eax, ax
mov dword [ebp - 0xc], eax
cmp dword [edi + 0x88], 0
je 0x100eece0
movsd xmm0, qword [0x10178b48]
movsd xmm1, qword [0x10221418]
call fcn.100af1b0
movss xmm1, dword [edi + 0x14eb4]
cvtps2pd xmm1, xmm1
divsd xmm1, qword [0x10173800]
mulsd xmm0, xmm1
addsd xmm0, qword [0x102511d8]
cvttsd2si eax, xmm0
cdq
xor eax, edx
sub eax, edx
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
cmp edx, 0xffffffff
je 0x100eecf3
test esi, esi
lea eax, [edx - 1]
setg bl
cmp esi, eax
jge 0x100eecf3
mov bh, 1
mov edx, dword [ebp - 0x1c]
add bl, bl
add bl, bh
mov eax, 0x10
mov bh, byte [ebp - 1]
mov ecx, 0x30
shl bl, 6
cmp dword [edi + 0x64], 0
cmovne eax, ecx
add bl, al
xor eax, eax
add bl, bh
test edx, edx
cmovs edx, eax
mov eax, dword [edi + 0xb8]
cmp eax, 4
ja case.0x100eed27.4
jmp dword [eax*4 + 0x100eef14]
movzx eax, cx
test ecx, ecx
js 0x100eec87
or eax, 0x2c00
jmp 0x100eec8e
xor al, al
jmp 0x100eed5c
mov al, 1
jmp 0x100eed5c
mov al, 2
jmp 0x100eed5c
cmp dword [edi + 0x54], 0
setne al
add al, 3
jmp 0x100eed5c
mov al, 7
mov esi, dword [edi + 0x40]
cmp esi, 0x7d00
jg 0x100eed6b
xor cl, cl
jmp 0x100eed81
cmp esi, 0xbb80
jne 0x100eed77
mov cl, 4
jmp 0x100eed81
setg cl
lea ecx, [ecx*4 + 2]
cmp dword [edi + 0xbc], 3
je 0x100eedcf
cmp dword [edi + 0xbc], 2
je 0x100eedcf
cmp dword [edi + 0x38], 0xffffffff
jne 0x100eed9f
cmp dword [edi + 0x3c], 0xffffffff
je 0x100eedcf
cmp dword [edi + 0x94], 0
je 0x100eedb1
cmp dword [edi + 0x7c], 0x140
jl 0x100eedcf
cmp dword [edi + 0xe0], 0
jne 0x100eedcf
cmp dword [edi + 0xd8], 0
jne 0x100eedcf
test bh, bh
je 0x100eedcf
cmp esi, 0x7d00
jg 0x100eedd6
mov dword [ebp - 0x10], 1
add cl, byte [ebp - 0x10]
movzx esi, word [edi + 0x14efc]
shl cl, 3
add cl, al
mov eax, edx
shl cl, 2
add cl, byte [ebp - 2]
shr eax, 0x18
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp + 0x10]
push 9
push dword [ebp - 0x20]
mov byte [ecx], al
mov eax, edx
shr eax, 0x10
mov byte [ecx + 1], al
mov eax, edx
shr eax, 8
mov byte [ecx + 2], al
lea eax, [ecx + 4]
push eax
mov byte [ecx + 3], dl
call fcn.100a8a00
mov edx, dword [ebp + 0x10]
add esp, 0xc
mov al, byte [ebp + 0xb]
mov ecx, dword [ebp - 0x14]
mov byte [edx + 0xd], al
mov eax, dword [ebp - 0x24]
mov byte [edx + 0xe], al
mov eax, ecx
shr eax, 0x18
mov byte [edx + 0xf], al
mov eax, ecx
shr eax, 0x10
mov byte [edx + 0x10], al
mov eax, ecx
shr eax, 8
mov byte [edx + 0x11], al
mov eax, dword [ebp - 0xc]
mov byte [edx + 0x12], cl
movzx ecx, ax
mov byte [edx + 0x14], cl
mov eax, ecx
mov ecx, dword [ebp - 8]
shr eax, 8
mov byte [edx + 0x13], al
mov word [edx + 0x15], 0
mov byte [edx + 0x17], bl
mov ebx, 0xff
cmp ecx, ebx
movzx eax, cl
mov ecx, dword [ebp - 0x28]
cmovge eax, ebx
mov ebx, dword [ebp - 0x2c]
mov byte [edx + 0x18], al
mov eax, ecx
sar eax, 4
mov byte [edx + 0x19], al
mov eax, ebx
sar eax, 8
shl cl, 4
add al, cl
mov byte [edx + 0x1b], bl
mov byte [edx + 0x1a], al
mov eax, dword [ebp - 0x1c]
mov byte [edx + 0x1c], al
mov byte [edx + 0x1d], 0
mov ecx, dword [edi + 0x68]
mov eax, ecx
sar eax, 8
mov byte [edx + 0x1e], al
mov byte [edx + 0x1f], cl
mov ecx, dword [ebp + 0xc]
mov eax, ecx
shr eax, 0x18
mov byte [edx + 0x20], al
mov eax, ecx
shr eax, 0x10
mov byte [edx + 0x21], al
mov eax, ecx
mov byte [edx + 0x23], cl
mov ecx, esi
mov esi, dword [ebp + 0x10]
shr eax, 8
mov byte [edx + 0x22], al
mov eax, ecx
shr eax, 8
mov byte [edx + 0x25], cl
mov ecx, dword [ebp + 0x14]
mov byte [edx + 0x24], al
xor edx, edx
pop ebx
movzx eax, byte [esi + edx]
inc edx
xor eax, ecx
shr cx, 8
movzx eax, al
xor cx, word [eax*4 + 0x10220ff0]
movzx ecx, cx
cmp edx, 0x26
jl 0x100eeee0
mov eax, ecx
mov byte [esi + 0x27], cl
shr eax, 8
mov byte [esi + 0x26], al
mov eax, 0x28
pop edi
pop esi
mov esp, ebp
pop ebp
ret