Function at 0x1000fd00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x164
mov eax, dword [0x1003a008]
xor eax, ebp
mov dword [ebp - 4], eax
movsd xmm0, qword [0x10037db8]
mov eax, dword [ebp + 8]
movsd qword [0x1003a920], xmm0
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 - 0x150], ecx
xor ecx, ecx
mov dword [ebp - 0x158], edx
mov dword [ebp - 0x15c], eax
movups xmmword [ebp - 0xc4], xmm0
mov dword [ebp - 0xec], 0xe4c9f7cc
movups xmmword [ebp - 0xb4], xmm0
mov word [ebp - 0xe8], 0xd1f6
mov byte [ebp - 0xe6], 0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0xec], al
inc ecx
cmp ecx, 6
jb 0x1000fd95
xor eax, eax
mov byte [ebp - 0xe6], 0
cmp byte [ebp - 0xc4], al
je 0x1000fdcb
nop word [eax + eax]
inc eax
cmp byte [ebp + eax - 0xc4], 0
jne 0x1000fdc0
push ebx
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0x144], 0
push esi
add eax, ecx
mov dword [ebp - 0x110], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x148], eax
push edi
lea edi, [ebp - 0xec]
mov dword [ebp - 0x10c], 0xb9bbbdb7
movups xmmword [ebp - 0x24], xmm0
mov byte [ebp - 0x108], 0
xor ecx, ecx
movups xmmword [ebp - 0x14], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x110], al
inc ecx
cmp ecx, 8
jb 0x1000fe14
mov al, byte [ebp - 0x110]
mov byte [ebp - 0x108], 0
mov byte [ebp - 0x24], al
test al, al
je 0x1000fe52
xor ecx, ecx
nop word [eax + eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x110]
mov byte [ebp + ecx - 0x24], al
test al, al
jne 0x1000fe40
movsx ebx, byte [ebp - 0xec]
mov esi, 3
mov al, bl
add al, al
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]
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 0x1000feb0
mov ecx, dword [ebp - 0x144]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x1000ff25
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x144], eax
cmp dword [ebp - 0x144], 0xe
jle 0x1000fefa
mov dword [ebp - 0x144], 1
mov edx, dword [ebp - 0x148]
lea ecx, [ebp - 0xec]
mov al, byte [ebp - 0xec]
mov byte [edx], al
test al, al
je 0x1000ff4d
mov eax, ecx
sub edx, eax
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [ecx + edx], al
test al, al
jne 0x1000ff16
jmp 0x1000ff4d
mov ecx, dword [ebp - 0x148]
mov al, byte [ebp - 0xec]
mov byte [ecx], al
test al, al
je 0x1000ff4d
lea eax, [ebp - 0xec]
sub ecx, eax
nop
mov al, byte [edi + 1]
lea edi, [edi + 1]
mov byte [ecx + edi], al
test al, al
jne 0x1000ff40
mov dword [ebp - 0xf4], 0xcaf3e6eb
xor ecx, ecx
mov word [ebp - 0xf0], 0xd4e0
mov byte [ebp - 0xee], 0
nop dword [eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0xf4], al
inc ecx
cmp ecx, 6
jb 0x1000ff70
xor eax, eax
mov byte [ebp - 0xee], 0
cmp byte [ebp - 0xc4], al
je 0x1000ff9c
inc eax
cmp byte [ebp + eax - 0xc4], 0
jne 0x1000ff91
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0x144], 0
add eax, ecx
mov dword [ebp - 0x11c], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x148], eax
lea edi, [ebp - 0xf4]
mov dword [ebp - 0x118], 0xb9bbbdb7
movups xmmword [ebp - 0x44], xmm0
mov byte [ebp - 0x114], 0
xor ecx, ecx
movups xmmword [ebp - 0x34], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x11c], al
inc ecx
cmp ecx, 8
jb 0x1000ffe2
mov al, byte [ebp - 0x11c]
mov byte [ebp - 0x114], 0
mov byte [ebp - 0x44], al
test al, al
je 0x10010022
xor ecx, ecx
nop dword [eax + eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x11c]
mov byte [ebp + ecx - 0x44], al
test al, al
jne 0x10010010
movsx ebx, byte [ebp - 0xf4]
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 0x10010080
mov ecx, dword [ebp - 0x144]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x100100f5
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x144], eax
cmp dword [ebp - 0x144], 0xe
jle 0x100100ca
mov dword [ebp - 0x144], 1
mov edx, dword [ebp - 0x148]
lea ecx, [ebp - 0xf4]
mov al, byte [ebp - 0xf4]
mov byte [edx], al
test al, al
je 0x1001011d
mov eax, ecx
sub edx, eax
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [ecx + edx], al
test al, al
jne 0x100100e6
jmp 0x1001011d
mov ecx, dword [ebp - 0x148]
mov al, byte [ebp - 0xf4]
mov byte [ecx], al
test al, al
je 0x1001011d
lea eax, [ebp - 0xf4]
sub ecx, eax
nop
mov al, byte [edi + 1]
lea edi, [edi + 1]
mov byte [edi + ecx], al
test al, al
jne 0x10010110
mov dword [ebp - 0xfc], 0xecf0e0e7
xor ecx, ecx
mov word [ebp - 0xf8], 0xe9e9
mov byte [ebp - 0xf6], 0
nop dword [eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0xfc], al
inc ecx
cmp ecx, 6
jb 0x10010140
xor eax, eax
mov byte [ebp - 0xf6], 0
cmp byte [ebp - 0xc4], al
je 0x1001016c
inc eax
cmp byte [ebp + eax - 0xc4], 0
jne 0x10010161
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0x144], 0
add eax, ecx
mov dword [ebp - 0x128], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x148], eax
lea edi, [ebp - 0xfc]
mov dword [ebp - 0x124], 0xb9bbbdb7
movups xmmword [ebp - 0x64], xmm0
mov byte [ebp - 0x120], 0
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x128], al
inc ecx
cmp ecx, 8
jb 0x100101b2
mov al, byte [ebp - 0x128]
mov byte [ebp - 0x120], 0
mov byte [ebp - 0x64], al
test al, al
je 0x100101f2
xor ecx, ecx
nop dword [eax + eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x128]
mov byte [ebp + ecx - 0x64], al
test al, al
jne 0x100101e0
movsx ebx, byte [ebp - 0xfc]
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 0x10010250
mov ecx, dword [ebp - 0x144]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x100102c5
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x144], eax
cmp dword [ebp - 0x144], 0xe
jle 0x1001029a
mov dword [ebp - 0x144], 1
mov edx, dword [ebp - 0x148]
lea ecx, [ebp - 0xfc]
mov al, byte [ebp - 0xfc]
mov byte [edx], al
test al, al
je 0x100102ed
mov eax, ecx
sub edx, eax
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [ecx + edx], al
test al, al
jne 0x100102b6
jmp 0x100102ed
mov ecx, dword [ebp - 0x148]
mov al, byte [ebp - 0xfc]
mov byte [ecx], al
test al, al
je 0x100102ed
lea eax, [ebp - 0xfc]
sub ecx, eax
nop
mov al, byte [edi + 1]
lea edi, [edi + 1]
mov byte [ecx + edi], al
test al, al
jne 0x100102e0
xorps xmm0, xmm0
mov dword [ebp - 0x104], 0xe9e0f7ec
movups xmmword [ebp - 0xe4], xmm0
mov word [ebp - 0x100], 0xa9ea
xor ecx, ecx
movups xmmword [ebp - 0xd4], xmm0
mov byte [ebp - 0xfe], 0
nop word [eax + eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x104], al
inc ecx
cmp ecx, 6
jb 0x10010320
xor eax, eax
mov byte [ebp - 0xfe], 0
cmp byte [ebp - 0xe4], al
je 0x1001034c
inc eax
cmp byte [ebp + eax - 0xe4], 0
jne 0x10010341
lea ecx, [ebp - 0xe4]
mov dword [ebp - 0x144], 0
add eax, ecx
mov dword [ebp - 0x134], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x148], eax
lea edi, [ebp - 0x104]
mov dword [ebp - 0x130], 0xb9bbbdb7
movups xmmword [ebp - 0x84], xmm0
mov byte [ebp - 0x12c], 0
xor ecx, ecx
movups xmmword [ebp - 0x74], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x134], al
inc ecx
cmp ecx, 8
jb 0x10010395
mov al, byte [ebp - 0x134]
mov byte [ebp - 0x12c], 0
mov byte [ebp - 0x84], al
test al, al
je 0x100103d5
xor ecx, ecx
nop
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x134]
mov byte [ebp + ecx - 0x84], al
test al, al
jne 0x100103c0
movsx ebx, byte [ebp - 0x104]
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 0x10010450
mov ecx, dword [ebp - 0x144]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x100104cf
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x144], eax
cmp dword [ebp - 0x144], 0xe
jle 0x100104a0
mov dword [ebp - 0x144], 1
mov edx, dword [ebp - 0x148]
lea ecx, [ebp - 0x104]
mov al, byte [ebp - 0x104]
mov byte [edx], al
test al, al
je 0x100104fd
mov eax, ecx
sub edx, eax
nop dword [eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [ecx + edx], al
test al, al
jne 0x100104c0
jmp 0x100104fd
mov ecx, dword [ebp - 0x148]
mov al, byte [ebp - 0x104]
mov byte [ecx], al
test al, al
je 0x100104fd
lea eax, [ebp - 0x104]
sub ecx, eax
nop dword [eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
mov byte [edi + ecx], al
test al, al
jne 0x100104f0
mov dword [ebp - 0x14c], 0xe8efe6
xor ecx, ecx
nop dword [eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x14c], al
inc ecx
cmp ecx, 3
jb 0x10010510
xor eax, eax
mov byte [ebp - 0x149], 0
mov dword [ebp - 0x148], eax
cmp byte [ebp - 0xe4], al
je 0x10010551
nop word [eax + eax]
inc eax
cmp byte [ebp + eax - 0xe4], 0
jne 0x10010540
mov dword [ebp - 0x148], eax
xorps xmm0, xmm0
mov dword [ebp - 0x144], 0
lea edi, [ebp - 0x14c]
mov dword [ebp - 0x140], 0xb1beb3b0
movups xmmword [ebp - 0xa4], xmm0
mov dword [ebp - 0x13c], 0xb9bbbdb7
xor ecx, ecx
movups xmmword [ebp - 0x94], xmm0
mov byte [ebp - 0x138], 0
nop
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x140], al
inc ecx
cmp ecx, 8
jb 0x10010590
mov al, byte [ebp - 0x140]
mov byte [ebp - 0x138], 0
mov byte [ebp - 0xa4], al
test al, al
je 0x100105d5
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x140]
mov byte [ebp + ecx - 0xa4], al
test al, al
jne 0x100105c0
movsx ebx, byte [ebp - 0x14c]
mov esi, 3
mov al, bl
add al, al
lea ecx, [eax + ebx]
add cl, byte [ebp - 0xa4]
inc cl
mov byte [ebp - 0xa4], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0xa4]
cdq
idiv ecx
movzx eax, byte [ebp - 0xa3]
or edx, ebx
add al, dl
mov byte [ebp - 0xa3], al
movzx eax, byte [ebp - 0xa3]
mov cl, byte [ebp - 0xa4]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0xa1]
mov byte [ebp - 0xa1], cl
movsx ecx, byte [ebp - 0xa1]
movzx eax, byte [ebp - 0xa0]
sar ecx, 6
add al, cl
mov byte [ebp - 0xa0], al
xor eax, eax
movsx edx, byte [ebp + esi - 0xa4]
movsx ecx, byte [ebp + esi - 0xa5]
add edx, edx
add ecx, edx
inc esi
lea eax, [eax + ecx*2]
cmp esi, 0x11
jl 0x10010650
mov ecx, dword [ebp - 0x144]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x100106d1
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x144], eax
cmp dword [ebp - 0x144], 0xe
jle 0x100106a0
mov dword [ebp - 0x144], 1
mov al, byte [ebp - 0x14c]
lea edx, [ebp - 0xe4]
add edx, dword [ebp - 0x148]
lea ecx, [ebp - 0x14c]
mov byte [edx], al
test al, al
je 0x100106fe
mov eax, ecx
sub edx, eax
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [ecx + edx], al
test al, al
jne 0x100106c2
jmp 0x100106fe
mov al, byte [ebp - 0x14c]
lea ecx, [ebp - 0xe4]
add ecx, dword [ebp - 0x148]
mov byte [ecx], al
test al, al
je 0x100106fe
lea eax, [ebp - 0x14c]
sub ecx, eax
mov al, byte [edi + 1]
lea edi, [edi + 1]
mov byte [edi + ecx], al
test al, al
jne 0x100106f1
lea edx, [ebp - 0xc4]
lea ecx, [ebp - 0xe4]
call fcn.1001ce80
test eax, eax
jne 0x10010727
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1001e319
mov esp, ebp
pop ebp
ret
movsd xmm1, qword [0x1003a918]
lea ecx, [ebp - 0x154]
movsd xmm2, qword [0x1003a928]
movaps xmm6, xmm1
movsd xmm3, qword [0x10037da8]
movaps xmm4, xmm2
mulsd xmm4, qword [0x1003a910]
xorps xmm0, xmm0
mov ebx, dword [ebp - 0x150]
mulsd xmm6, xmm2
push 2
movq qword [ebp - 0x164], xmm0
addsd xmm4, qword [0x1003a920]
push 0
addsd xmm6, qword [0x1003a910]
push 1
push ecx
movaps xmm7, xmm4
mov dword [ebx], 0
mulsd xmm7, xmm1
lea ecx, [ebp - 0x164]
mov dword [ebp - 0x154], 0
movaps xmm5, xmm6
mulsd xmm5, xmm4
push ecx
addsd xmm7, xmm2
movaps xmm2, xmm4
push 0
push 0
addsd xmm5, xmm1
push ebx
movaps xmm0, xmm7
push dword [ebp - 0x158]
movaps xmm1, xmm5
addsd xmm1, xmm3
push dword [ebp - 0x15c]
divsd xmm0, xmm1
movaps xmm1, xmm5
subsd xmm6, xmm0
movaps xmm0, xmm4
addsd xmm0, xmm3
divsd xmm1, xmm0
movaps xmm0, xmm6
subsd xmm7, xmm1
movaps xmm1, xmm7
addsd xmm1, xmm3
divsd xmm0, xmm1
subsd xmm2, xmm0
movaps xmm0, xmm6
addsd xmm0, xmm3
divsd xmm4, xmm0
movaps xmm0, xmm2
subsd xmm5, xmm4
addsd xmm0, xmm3
divsd xmm5, xmm0
movaps xmm0, xmm6
addsd xmm5, xmm6
addsd xmm0, xmm3
divsd xmm6, xmm1
divsd xmm2, xmm0
addsd xmm6, xmm5
movsd qword [0x1003a918], xmm5
addsd xmm5, xmm3
addsd xmm2, xmm7
movsd qword [0x1003a910], xmm6
divsd xmm7, xmm5
movsd qword [0x1003a920], xmm2
addsd xmm7, xmm2
movsd qword [0x1003a928], xmm7
call eax
test eax, eax
jns 0x10010879
pop edi
pop esi
mov dword [ebx], 0
mov eax, 0xfffffffe
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1001e319
mov esp, ebp
pop ebp
ret
movsd xmm3, qword [0x1003a918]
xor eax, eax
movsd xmm1, qword [0x1003a910]
movaps xmm4, xmm3
mulsd xmm4, qword [0x1003a928]
movaps xmm0, xmm1
movsd xmm2, qword [0x1003a920]
mulsd xmm0, xmm2
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
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1001e319
mov esp, ebp
pop ebp
ret