Function at 0x100012e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x358
mov eax, dword [0x1003a008]
xor eax, ebp
mov dword [ebp - 4], eax
movsd xmm0, qword [0x10037db8]
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 - 0x358], ecx
xor ecx, ecx
movups xmmword [ebp - 0xc4], xmm0
mov dword [ebp - 0x2f4], 0xc6f0e6c5
movups xmmword [ebp - 0xb4], xmm0
mov word [ebp - 0x2f0], 0xeae9
mov byte [ebp - 0x2ee], 0
nop word [eax + eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x2f4], al
inc ecx
cmp ecx, 6
jb 0x10001370
xor eax, eax
mov byte [ebp - 0x2ee], 0
cmp byte [ebp - 0xc4], al
je 0x1000139c
inc eax
cmp byte [ebp + eax - 0xc4], 0
jne 0x10001391
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0x34c], 0
add eax, ecx
mov dword [ebp - 0x318], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x350], eax
push edi
lea edi, [ebp - 0x2f4]
mov dword [ebp - 0x314], 0xb9bbbdb7
movups xmmword [ebp - 0x24], xmm0
mov byte [ebp - 0x310], 0
xor ecx, ecx
movups xmmword [ebp - 0x14], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x318], al
inc ecx
cmp ecx, 8
jb 0x100013e3
mov al, byte [ebp - 0x318]
mov byte [ebp - 0x310], 0
mov byte [ebp - 0x24], al
test al, al
je 0x10001422
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x318]
mov byte [ebp + ecx - 0x24], al
test al, al
jne 0x10001410
push ebx
movsx ebx, byte [ebp - 0x2f4]
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 0x10001480
mov ecx, dword [ebp - 0x34c]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x100014f5
mov eax, dword [ebp - 0x34c]
mov dword [ebp - 0x34c], eax
cmp dword [ebp - 0x34c], 0xe
jle 0x100014ca
mov dword [ebp - 0x34c], 1
mov edx, dword [ebp - 0x350]
lea ecx, [ebp - 0x2f4]
mov al, byte [ebp - 0x2f4]
mov byte [edx], al
test al, al
je 0x1000151d
mov eax, ecx
sub edx, eax
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [edx + ecx], al
test al, al
jne 0x100014e6
jmp 0x1000151d
mov ecx, dword [ebp - 0x350]
mov al, byte [ebp - 0x2f4]
mov byte [ecx], al
test al, al
je 0x1000151d
lea eax, [ebp - 0x2f4]
sub ecx, eax
nop
mov al, byte [edi + 1]
lea edi, [edi + 1]
mov byte [ecx + edi], al
test al, al
jne 0x10001510
mov dword [ebp - 0x2fc], 0xe0f0f6f2
xor ecx, ecx
mov word [ebp - 0x2f8], 0xc9f4
mov byte [ebp - 0x2f6], 0
nop dword [eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x2fc], al
inc ecx
cmp ecx, 6
jb 0x10001540
xor eax, eax
mov byte [ebp - 0x2f6], 0
cmp byte [ebp - 0xc4], al
je 0x1000156c
inc eax
cmp byte [ebp + eax - 0xc4], 0
jne 0x10001561
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0x34c], 0
add eax, ecx
mov dword [ebp - 0x324], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x350], eax
lea edi, [ebp - 0x2fc]
mov dword [ebp - 0x320], 0xb9bbbdb7
movups xmmword [ebp - 0x44], xmm0
mov byte [ebp - 0x31c], 0
xor ecx, ecx
movups xmmword [ebp - 0x34], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x324], al
inc ecx
cmp ecx, 8
jb 0x100015b2
mov al, byte [ebp - 0x324]
mov byte [ebp - 0x31c], 0
mov byte [ebp - 0x44], al
test al, al
je 0x100015f2
xor ecx, ecx
nop dword [eax + eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x324]
mov byte [ebp + ecx - 0x44], al
test al, al
jne 0x100015e0
movsx ebx, byte [ebp - 0x2fc]
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 0x10001650
mov ecx, dword [ebp - 0x34c]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x100016c5
mov eax, dword [ebp - 0x34c]
mov dword [ebp - 0x34c], eax
cmp dword [ebp - 0x34c], 0xe
jle 0x1000169a
mov dword [ebp - 0x34c], 1
mov edx, dword [ebp - 0x350]
lea ecx, [ebp - 0x2fc]
mov al, byte [ebp - 0x2fc]
mov byte [edx], al
test al, al
je 0x100016ed
mov eax, ecx
sub edx, eax
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [ecx + edx], al
test al, al
jne 0x100016b6
jmp 0x100016ed
mov ecx, dword [ebp - 0x350]
mov al, byte [ebp - 0x2fc]
mov byte [ecx], al
test al, al
je 0x100016ed
lea eax, [ebp - 0x2fc]
sub ecx, eax
nop
mov al, byte [edi + 1]
lea edi, [edi + 1]
mov byte [edi + ecx], al
test al, al
jne 0x100016e0
mov dword [ebp - 0x2ec], 0xd2e1eee3
xor ecx, ecx
mov byte [ebp - 0x2e8], 0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x2ec], al
inc ecx
cmp ecx, 4
jb 0x10001700
xor eax, eax
mov byte [ebp - 0x2e8], 0
cmp byte [ebp - 0xc4], al
je 0x1000172c
inc eax
cmp byte [ebp + eax - 0xc4], 0
jne 0x10001721
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0x34c], 0
add eax, ecx
mov dword [ebp - 0x330], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x350], eax
lea edi, [ebp - 0x2ec]
mov dword [ebp - 0x32c], 0xb9bbbdb7
movups xmmword [ebp - 0x64], xmm0
mov byte [ebp - 0x328], 0
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x330], al
inc ecx
cmp ecx, 8
jb 0x10001772
mov al, byte [ebp - 0x330]
mov byte [ebp - 0x328], 0
mov byte [ebp - 0x64], al
test al, al
je 0x100017b2
xor ecx, ecx
nop dword [eax + eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x330]
mov byte [ebp + ecx - 0x64], al
test al, al
jne 0x100017a0
movsx ebx, byte [ebp - 0x2ec]
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 0x10001810
mov ecx, dword [ebp - 0x34c]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x10001885
mov eax, dword [ebp - 0x34c]
mov dword [ebp - 0x34c], eax
cmp dword [ebp - 0x34c], 0xe
jle 0x1000185a
mov dword [ebp - 0x34c], 1
mov edx, dword [ebp - 0x350]
lea ecx, [ebp - 0x2ec]
mov al, byte [ebp - 0x2ec]
mov byte [edx], al
test al, al
je 0x100018ad
mov eax, ecx
sub edx, eax
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [ecx + edx], al
test al, al
jne 0x10001876
jmp 0x100018ad
mov ecx, dword [ebp - 0x350]
mov al, byte [ebp - 0x2ec]
mov byte [ecx], al
test al, al
je 0x100018ad
lea eax, [ebp - 0x2ec]
sub ecx, eax
nop
mov al, byte [edi + 1]
lea edi, [edi + 1]
mov byte [edi + ecx], al
test al, al
jne 0x100018a0
xorps xmm0, xmm0
mov dword [ebp - 0x304], 0xebf6e6e9
movups xmmword [ebp - 0xe4], xmm0
mov word [ebp - 0x300], 0xebe3
xor ecx, ecx
movups xmmword [ebp - 0xd4], xmm0
mov byte [ebp - 0x2fe], 0
nop word [eax + eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x304], al
inc ecx
cmp ecx, 6
jb 0x100018e0
xor eax, eax
mov byte [ebp - 0x2fe], 0
cmp byte [ebp - 0xe4], al
je 0x1000190c
inc eax
cmp byte [ebp + eax - 0xe4], 0
jne 0x10001901
lea ecx, [ebp - 0xe4]
mov dword [ebp - 0x34c], 0
add eax, ecx
mov dword [ebp - 0x33c], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x350], eax
lea edi, [ebp - 0x304]
mov dword [ebp - 0x338], 0xb9bbbdb7
movups xmmword [ebp - 0x84], xmm0
mov byte [ebp - 0x334], 0
xor ecx, ecx
movups xmmword [ebp - 0x74], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x33c], al
inc ecx
cmp ecx, 8
jb 0x10001955
mov al, byte [ebp - 0x33c]
mov byte [ebp - 0x334], 0
mov byte [ebp - 0x84], al
test al, al
je 0x10001995
xor ecx, ecx
nop
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x33c]
mov byte [ebp + ecx - 0x84], al
test al, al
jne 0x10001980
movsx ebx, byte [ebp - 0x304]
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 0x10001a10
mov ecx, dword [ebp - 0x34c]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x10001a8f
mov eax, dword [ebp - 0x34c]
mov dword [ebp - 0x34c], eax
cmp dword [ebp - 0x34c], 0xe
jle 0x10001a60
mov dword [ebp - 0x34c], 1
mov edx, dword [ebp - 0x350]
lea ecx, [ebp - 0x304]
mov al, byte [ebp - 0x304]
mov byte [edx], al
test al, al
je 0x10001abd
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 0x10001a80
jmp 0x10001abd
mov ecx, dword [ebp - 0x350]
mov al, byte [ebp - 0x304]
mov byte [ecx], al
test al, al
je 0x10001abd
lea eax, [ebp - 0x304]
sub ecx, eax
nop dword [eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
mov byte [edi + ecx], al
test al, al
jne 0x10001ab0
mov dword [ebp - 0x30c], 0xe1aab1b1
xor ecx, ecx
mov word [ebp - 0x308], 0xebea
mov byte [ebp - 0x306], 0
nop dword [eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x30c], al
inc ecx
cmp ecx, 6
jb 0x10001ae0
xor eax, eax
mov byte [ebp - 0x306], 0
cmp byte [ebp - 0xe4], al
je 0x10001b0c
inc eax
cmp byte [ebp + eax - 0xe4], 0
jne 0x10001b01
lea ecx, [ebp - 0xe4]
mov dword [ebp - 0x34c], 0
add eax, ecx
mov dword [ebp - 0x348], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x350], eax
lea edi, [ebp - 0x30c]
mov dword [ebp - 0x344], 0xb9bbbdb7
movups xmmword [ebp - 0xa4], xmm0
mov byte [ebp - 0x340], 0
xor ecx, ecx
movups xmmword [ebp - 0x94], xmm0
nop dword [eax + eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x348], al
inc ecx
cmp ecx, 8
jb 0x10001b60
mov al, byte [ebp - 0x348]
mov byte [ebp - 0x340], 0
mov byte [ebp - 0xa4], al
test al, al
je 0x10001ba5
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x348]
mov byte [ebp + ecx - 0xa4], al
test al, al
jne 0x10001b90
movsx ebx, byte [ebp - 0x30c]
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 0x10001c20
mov ecx, dword [ebp - 0x34c]
cdq
pop esi
pop ebx
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x10001c9f
mov eax, dword [ebp - 0x34c]
mov dword [ebp - 0x34c], eax
cmp dword [ebp - 0x34c], 0xe
jle 0x10001c72
mov dword [ebp - 0x34c], 1
mov edx, dword [ebp - 0x350]
lea ecx, [ebp - 0x30c]
mov al, byte [ebp - 0x30c]
mov byte [edx], al
test al, al
je 0x10001ccd
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 0x10001c90
jmp 0x10001ccd
mov ecx, dword [ebp - 0x350]
mov al, byte [ebp - 0x30c]
mov byte [ecx], al
test al, al
je 0x10001ccd
lea eax, [ebp - 0x30c]
sub ecx, eax
nop dword [eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
mov byte [edi + ecx], al
test al, al
jne 0x10001cc0
lea edx, [ebp - 0xc4]
lea ecx, [ebp - 0xe4]
call fcn.1001ce80
pop edi
test eax, eax
je 0x10001e70
movsd xmm3, qword [0x1003a918]
lea ecx, [ebp - 0x354]
movsd xmm1, qword [0x1003a910]
movaps xmm4, xmm3
mulsd xmm4, qword [0x1003a928]
movaps xmm0, xmm1
push ecx
movsd xmm2, qword [0x1003a920]
lea ecx, [ebp - 0x2e4]
mulsd xmm0, xmm2
push ecx
subsd xmm4, xmm2
mulsd xmm3, xmm2
mov dword [ebp - 0x354], 0x100
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 0x10001d78
or eax, 0xffffffff
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1001e319
mov esp, ebp
pop ebp
ret
movsd xmm5, qword [0x1003a920]
lea eax, [ebp - 0x2e4]
movsd xmm3, qword [0x10037da8]
movaps xmm0, xmm5
movsd xmm4, qword [0x1003a918]
addsd xmm0, xmm3
movsd xmm2, qword [0x1003a910]
movsd xmm1, qword [0x1003a928]
mov ecx, dword [ebp - 0x358]
push eax
divsd xmm4, xmm0
movaps xmm0, xmm2
addsd xmm0, xmm3
addsd xmm4, xmm2
divsd xmm5, xmm0
movaps xmm0, xmm1
movsd qword [0x1003a918], xmm4
addsd xmm0, xmm3
addsd xmm5, xmm1
divsd xmm2, xmm0
movsd qword [0x1003a920], xmm5
addsd xmm2, xmm4
addsd xmm4, xmm3
movsd qword [0x1003a910], xmm2
divsd xmm1, xmm4
addsd xmm1, xmm5
movsd qword [0x1003a928], xmm1
call fcn.1000a150
movsd xmm3, qword [0x1003a928]
movsd xmm1, qword [0x1003a918]
movaps xmm4, xmm3
mulsd xmm4, qword [0x1003a910]
movaps xmm2, xmm1
mulsd xmm2, xmm3
addsd xmm4, qword [0x1003a920]
addsd xmm2, qword [0x1003a910]
movaps xmm0, xmm4
movsd qword [0x1003a920], xmm4
mulsd xmm0, xmm1
movsd qword [0x1003a910], xmm2
mulsd xmm2, xmm4
addsd xmm0, xmm3
addsd xmm2, xmm1
movsd qword [0x1003a928], xmm0
movsd qword [0x1003a918], xmm2
mov ecx, dword [ebp - 4]
xor eax, eax
xor ecx, ebp
call fcn.1001e319
mov esp, ebp
pop ebp
ret