Function at 0x10003a00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x324
mov eax, dword [0x1003a008]
xor eax, ebp
mov dword [ebp - 4], eax
push 0x200
lea eax, [ebp - 0x2c4]
mov dword [ebp - 0x324], ecx
push 0
push eax
call fcn.1001fb10
movsd xmm0, qword [0x10037db8]
add esp, 0xc
movsd qword [0x1003a920], xmm0
xor ecx, ecx
movsd xmm0, qword [0x10037dd8]
movsd qword [0x1003a910], xmm0
movsd xmm0, qword [0x10037dc0]
movsd qword [0x1003a928], xmm0
movsd xmm0, qword [0x10037db0]
movsd qword [0x1003a918], xmm0
xorps xmm0, xmm0
mov dword [ebp - 0x320], 0x100
movups xmmword [ebp - 0xa4], xmm0
mov dword [ebp - 0x2cc], 0xd0f0e6c5
movups xmmword [ebp - 0x94], xmm0
mov word [ebp - 0x2c8], 0xe2f5
mov byte [ebp - 0x2c6], 0
nop word [eax + eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x2cc], al
inc ecx
cmp ecx, 6
jb 0x10003ab0
xor eax, eax
mov byte [ebp - 0x2c6], 0
cmp byte [ebp - 0xa4], al
je 0x10003adc
inc eax
cmp byte [ebp + eax - 0xa4], 0
jne 0x10003ad1
lea ecx, [ebp - 0xa4]
mov dword [ebp - 0x318], 0
add eax, ecx
mov dword [ebp - 0x2f0], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x31c], eax
push edi
lea edi, [ebp - 0x2cc]
mov dword [ebp - 0x2ec], 0xb9bbbdb7
movups xmmword [ebp - 0x24], xmm0
mov byte [ebp - 0x2e8], 0
xor ecx, ecx
movups xmmword [ebp - 0x14], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x2f0], al
inc ecx
cmp ecx, 8
jb 0x10003b23
mov al, byte [ebp - 0x2f0]
mov byte [ebp - 0x2e8], 0
mov byte [ebp - 0x24], al
test al, al
je 0x10003b62
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x2f0]
mov byte [ebp + ecx - 0x24], al
test al, al
jne 0x10003b50
push ebx
movsx ebx, byte [ebp - 0x2cc]
mov al, bl
add al, al
push esi
mov esi, 3
lea ecx, [eax + ebx]
add cl, byte [ebp - 0x24]
inc cl
mov byte [ebp - 0x24], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x24]
cdq
idiv ecx
movzx eax, byte [ebp - 0x23]
or edx, ebx
add al, dl
mov byte [ebp - 0x23], al
movzx eax, byte [ebp - 0x23]
mov cl, byte [ebp - 0x24]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x21]
mov byte [ebp - 0x21], cl
movsx ecx, byte [ebp - 0x21]
movzx eax, byte [ebp - 0x20]
sar ecx, 6
add al, cl
mov byte [ebp - 0x20], al
xor eax, eax
nop dword [eax + eax]
movsx edx, byte [ebp + esi - 0x24]
movsx ecx, byte [ebp + esi - 0x25]
add edx, edx
add ecx, edx
inc esi
lea eax, [eax + ecx*2]
cmp esi, 0x11
jl 0x10003bc0
mov ecx, dword [ebp - 0x318]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x10003c35
mov eax, dword [ebp - 0x318]
mov dword [ebp - 0x318], eax
cmp dword [ebp - 0x318], 0xe
jle 0x10003c0a
mov dword [ebp - 0x318], 1
mov edx, dword [ebp - 0x31c]
lea ecx, [ebp - 0x2cc]
mov al, byte [ebp - 0x2cc]
mov byte [edx], al
test al, al
je 0x10003c5d
mov eax, ecx
sub edx, eax
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [edx + ecx], al
test al, al
jne 0x10003c26
jmp 0x10003c5d
mov ecx, dword [ebp - 0x31c]
mov al, byte [ebp - 0x2cc]
mov byte [ecx], al
test al, al
je 0x10003c5d
lea eax, [ebp - 0x2cc]
sub ecx, eax
nop
mov al, byte [edi + 1]
lea edi, [edi + 1]
mov byte [ecx + edi], al
test al, al
jne 0x10003c50
mov dword [ebp - 0x2d4], 0xe8e5cdf0
xor ecx, ecx
mov word [ebp - 0x2d0], 0xd0e3
mov byte [ebp - 0x2ce], 0
nop dword [eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x2d4], al
inc ecx
cmp ecx, 6
jb 0x10003c80
xor eax, eax
mov byte [ebp - 0x2ce], 0
cmp byte [ebp - 0xa4], al
je 0x10003cac
inc eax
cmp byte [ebp + eax - 0xa4], 0
jne 0x10003ca1
lea ecx, [ebp - 0xa4]
mov dword [ebp - 0x318], 0
add eax, ecx
mov dword [ebp - 0x2fc], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x31c], eax
lea edi, [ebp - 0x2d4]
mov dword [ebp - 0x2f8], 0xb9bbbdb7
movups xmmword [ebp - 0x44], xmm0
mov byte [ebp - 0x2f4], 0
xor ecx, ecx
movups xmmword [ebp - 0x34], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x2fc], al
inc ecx
cmp ecx, 8
jb 0x10003cf2
mov al, byte [ebp - 0x2fc]
mov byte [ebp - 0x2f4], 0
mov byte [ebp - 0x44], al
test al, al
je 0x10003d32
xor ecx, ecx
nop dword [eax + eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x2fc]
mov byte [ebp + ecx - 0x44], al
test al, al
jne 0x10003d20
movsx ebx, byte [ebp - 0x2d4]
mov esi, 3
mov al, bl
add al, al
lea ecx, [eax + ebx]
add cl, byte [ebp - 0x44]
inc cl
mov byte [ebp - 0x44], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x44]
cdq
idiv ecx
movzx eax, byte [ebp - 0x43]
or edx, ebx
add al, dl
mov byte [ebp - 0x43], al
movzx eax, byte [ebp - 0x43]
mov cl, byte [ebp - 0x44]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x41]
mov byte [ebp - 0x41], cl
movsx ecx, byte [ebp - 0x41]
movzx eax, byte [ebp - 0x40]
sar ecx, 6
add al, cl
mov byte [ebp - 0x40], al
xor eax, eax
nop dword [eax]
movsx edx, byte [ebp + esi - 0x44]
movsx ecx, byte [ebp + esi - 0x45]
add edx, edx
add ecx, edx
inc esi
lea eax, [eax + ecx*2]
cmp esi, 0x11
jl 0x10003d90
mov ecx, dword [ebp - 0x318]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x10003e05
mov eax, dword [ebp - 0x318]
mov dword [ebp - 0x318], eax
cmp dword [ebp - 0x318], 0xe
jle 0x10003dda
mov dword [ebp - 0x318], 1
mov edx, dword [ebp - 0x31c]
lea ecx, [ebp - 0x2d4]
mov al, byte [ebp - 0x2d4]
mov byte [edx], al
test al, al
je 0x10003e2d
mov eax, ecx
sub edx, eax
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [edx + ecx], al
test al, al
jne 0x10003df6
jmp 0x10003e2d
mov ecx, dword [ebp - 0x31c]
mov al, byte [ebp - 0x2d4]
mov byte [ecx], al
test al, al
je 0x10003e2d
lea eax, [ebp - 0x2d4]
sub ecx, eax
nop
mov al, byte [edi + 1]
lea edi, [edi + 1]
mov byte [ecx + edi], al
test al, al
jne 0x10003e20
xorps xmm0, xmm0
mov dword [ebp - 0x2dc], 0xe4f2e7e3
movups xmmword [ebp - 0xc4], xmm0
mov word [ebp - 0x2d8], 0xeef6
xor ecx, ecx
movups xmmword [ebp - 0xb4], xmm0
mov byte [ebp - 0x2d6], 0
nop word [eax + eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x2dc], al
inc ecx
cmp ecx, 6
jb 0x10003e60
xor eax, eax
mov byte [ebp - 0x2d6], 0
cmp byte [ebp - 0xc4], al
je 0x10003e8c
inc eax
cmp byte [ebp + eax - 0xc4], 0
jne 0x10003e81
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0x318], 0
add eax, ecx
mov dword [ebp - 0x308], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x31c], eax
lea edi, [ebp - 0x2dc]
mov dword [ebp - 0x304], 0xb9bbbdb7
movups xmmword [ebp - 0x64], xmm0
mov byte [ebp - 0x300], 0
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x308], al
inc ecx
cmp ecx, 8
jb 0x10003ed2
mov al, byte [ebp - 0x308]
mov byte [ebp - 0x300], 0
mov byte [ebp - 0x64], al
test al, al
je 0x10003f12
xor ecx, ecx
nop dword [eax + eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x308]
mov byte [ebp + ecx - 0x64], al
test al, al
jne 0x10003f00
movsx ebx, byte [ebp - 0x2dc]
mov esi, 3
mov al, bl
add al, al
lea ecx, [eax + ebx]
add cl, byte [ebp - 0x64]
inc cl
mov byte [ebp - 0x64], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x64]
cdq
idiv ecx
movzx eax, byte [ebp - 0x63]
or edx, ebx
add al, dl
mov byte [ebp - 0x63], al
movzx eax, byte [ebp - 0x63]
mov cl, byte [ebp - 0x64]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x61]
mov byte [ebp - 0x61], cl
movsx ecx, byte [ebp - 0x61]
movzx eax, byte [ebp - 0x60]
sar ecx, 6
add al, cl
mov byte [ebp - 0x60], al
xor eax, eax
nop dword [eax]
movsx edx, byte [ebp + esi - 0x64]
movsx ecx, byte [ebp + esi - 0x65]
add edx, edx
add ecx, edx
inc esi
lea eax, [eax + ecx*2]
cmp esi, 0x11
jl 0x10003f70
mov ecx, dword [ebp - 0x318]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x10003fe5
mov eax, dword [ebp - 0x318]
mov dword [ebp - 0x318], eax
cmp dword [ebp - 0x318], 0xe
jle 0x10003fba
mov dword [ebp - 0x318], 1
mov edx, dword [ebp - 0x31c]
lea ecx, [ebp - 0x2dc]
mov al, byte [ebp - 0x2dc]
mov byte [edx], al
test al, al
je 0x1000400d
mov eax, ecx
sub edx, eax
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [ecx + edx], al
test al, al
jne 0x10003fd6
jmp 0x1000400d
mov ecx, dword [ebp - 0x31c]
mov al, byte [ebp - 0x2dc]
mov byte [ecx], al
test al, al
je 0x1000400d
lea eax, [ebp - 0x2dc]
sub ecx, eax
nop
mov al, byte [edi + 1]
lea edi, [edi + 1]
mov byte [ecx + edi], al
test al, al
jne 0x10004000
mov dword [ebp - 0x2e4], 0xe1aab1b1
xor ecx, ecx
mov word [ebp - 0x2e0], 0xebea
mov byte [ebp - 0x2de], 0
nop dword [eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x2e4], al
inc ecx
cmp ecx, 6
jb 0x10004030
xor eax, eax
mov byte [ebp - 0x2de], 0
cmp byte [ebp - 0xc4], al
je 0x1000405c
inc eax
cmp byte [ebp + eax - 0xc4], 0
jne 0x10004051
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0x318], 0
add eax, ecx
mov dword [ebp - 0x314], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x31c], eax
lea edi, [ebp - 0x2e4]
mov dword [ebp - 0x310], 0xb9bbbdb7
movups xmmword [ebp - 0x84], xmm0
mov byte [ebp - 0x30c], 0
xor ecx, ecx
movups xmmword [ebp - 0x74], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x314], al
inc ecx
cmp ecx, 8
jb 0x100040a5
mov al, byte [ebp - 0x314]
mov byte [ebp - 0x30c], 0
mov byte [ebp - 0x84], al
test al, al
je 0x100040e5
xor ecx, ecx
nop
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x314]
mov byte [ebp + ecx - 0x84], al
test al, al
jne 0x100040d0
movsx ebx, byte [ebp - 0x2e4]
mov esi, 3
mov al, bl
add al, al
lea ecx, [eax + ebx]
add cl, byte [ebp - 0x84]
inc cl
mov byte [ebp - 0x84], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x84]
cdq
idiv ecx
movzx eax, byte [ebp - 0x83]
or edx, ebx
add al, dl
mov byte [ebp - 0x83], al
movzx eax, byte [ebp - 0x83]
mov cl, byte [ebp - 0x84]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x81]
mov byte [ebp - 0x81], cl
movsx ecx, byte [ebp - 0x81]
movzx eax, byte [ebp - 0x80]
sar ecx, 6
add al, cl
mov byte [ebp - 0x80], al
xor eax, eax
nop word [eax + eax]
movsx edx, byte [ebp + esi - 0x84]
movsx ecx, byte [ebp + esi - 0x85]
add edx, edx
add ecx, edx
inc esi
lea eax, [eax + ecx*2]
cmp esi, 0x11
jl 0x10004160
mov ecx, dword [ebp - 0x318]
cdq
pop esi
pop ebx
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x100041df
mov eax, dword [ebp - 0x318]
mov dword [ebp - 0x318], eax
cmp dword [ebp - 0x318], 0xe
jle 0x100041b2
mov dword [ebp - 0x318], 1
mov edx, dword [ebp - 0x31c]
lea ecx, [ebp - 0x2e4]
mov al, byte [ebp - 0x2e4]
mov byte [edx], al
test al, al
je 0x1000420d
mov eax, ecx
sub edx, eax
nop
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [ecx + edx], al
test al, al
jne 0x100041d0
jmp 0x1000420d
mov ecx, dword [ebp - 0x31c]
mov al, byte [ebp - 0x2e4]
mov byte [ecx], al
test al, al
je 0x1000420d
lea eax, [ebp - 0x2e4]
sub ecx, eax
nop dword [eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
mov byte [ecx + edi], al
test al, al
jne 0x10004200
lea edx, [ebp - 0xa4]
lea ecx, [ebp - 0xc4]
call fcn.1001ce80
pop edi
test eax, eax
je 0x100043cb
movsd xmm3, qword [0x1003a918]
lea ecx, [ebp - 0x320]
movsd xmm1, qword [0x1003a910]
movaps xmm4, xmm3
mulsd xmm4, qword [0x1003a928]
movaps xmm0, xmm1
push ecx
movsd xmm2, qword [0x1003a920]
lea ecx, [ebp - 0x2c4]
mulsd xmm0, xmm2
push ecx
subsd xmm4, xmm2
mulsd xmm3, xmm2
subsd xmm0, xmm4
movsd qword [0x1003a928], xmm4
subsd xmm3, xmm1
mulsd xmm4, xmm1
movsd qword [0x1003a920], xmm0
subsd xmm4, xmm3
movsd qword [0x1003a918], xmm3
movsd qword [0x1003a910], xmm4
call eax
test eax, eax
jne 0x100042ae
or eax, 0xffffffff
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1001e319
mov esp, ebp
pop ebp
ret
movsd xmm4, qword [0x1003a918]
lea eax, [ebp - 0x2c4]
movsd xmm6, qword [0x10037da8]
movaps xmm1, xmm4
movsd xmm5, qword [0x1003a928]
addsd xmm1, xmm6
movaps xmm0, xmm5
movsd xmm3, qword [0x1003a910]
movsd xmm2, qword [0x1003a920]
mov ecx, dword [ebp - 0x324]
push eax
divsd xmm0, xmm1
movaps xmm1, xmm4
subsd xmm3, xmm0
movaps xmm0, xmm2
addsd xmm0, xmm6
movsd qword [0x1003a910], xmm3
divsd xmm1, xmm0
movaps xmm0, xmm3
subsd xmm5, xmm1
movaps xmm1, xmm2
addsd xmm0, xmm6
movsd qword [0x1003a928], xmm5
addsd xmm5, xmm6
divsd xmm1, xmm0
divsd xmm3, xmm5
subsd xmm4, xmm1
subsd xmm2, xmm3
movsd qword [0x1003a918], xmm4
movsd qword [0x1003a920], xmm2
call fcn.1000a150
movsd xmm4, qword [0x1003a920]
movsd xmm5, qword [0x10037da8]
movaps xmm0, xmm4
movsd xmm3, qword [0x1003a918]
addsd xmm0, xmm5
movsd xmm2, qword [0x1003a910]
movsd xmm1, qword [0x1003a928]
divsd xmm3, xmm0
movaps xmm0, xmm2
addsd xmm0, xmm5
addsd xmm3, xmm2
divsd xmm4, xmm0
movaps xmm0, xmm1
movsd qword [0x1003a918], xmm3
addsd xmm0, xmm5
addsd xmm4, xmm1
divsd xmm2, xmm0
movsd qword [0x1003a920], xmm4
addsd xmm2, xmm3
addsd xmm3, xmm5
movsd qword [0x1003a910], xmm2
divsd xmm1, xmm3
addsd xmm1, xmm4
movsd qword [0x1003a928], xmm1
mov ecx, dword [ebp - 4]
xor eax, eax
xor ecx, ebp
call fcn.1001e319
mov esp, ebp
pop ebp
ret