Function at 0x10093b90
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push edi
push esi
push ebx
sub esp, 0x174
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x30]
mov ebx, dword [ebp + 0x34]
mov esi, dword [0x1020ed34]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x148], esi
mov dword [esp + 0xc], ebx
inc dword [0x102109fc]
lea edi, [esp + 0x140]
mov dword [esp + 0x18], 6
mov dword [esp + 0x10], edi
lea esi, [esp + 0x130]
mov dword [esp + 0x14], esi
call fcn.1009469c
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x24]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xc], ebx
lea esi, [esp + 0x13c]
mov dword [esp + 0x18], 6
mov dword [esp + 0x10], esi
lea edi, [esp + 0x134]
mov dword [esp + 0x14], edi
call fcn.1009469c
mov edx, dword [esp + 0x130]
test edx, edx
jle 0x10093d37
mov dword [esp + 0x38], edx
mov dword [esp + 0x54], ebx
xor ecx, ecx
xor eax, eax
lea edi, [ebx - 1]
xor esi, esi
cmp ecx, edi
je 0x10093d33
mov dword [esp + 0x40], esi
mov dword [esp + 0x34], edi
mov dword [esp + 0x44], ecx
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x54]
cmp edx, dword [esp + 0x44]
lea edi, [edx + edi]
jle 0x1009467e
mov ecx, dword [esp + 0x140]
movsd xmm2, qword [0x1020c110]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x3c], eax
xor ebx, ebx
mov esi, eax
shl esi, 4
movsd xmm1, qword [ecx + esi]
shl edx, 4
pxor xmm0, xmm0
subsd xmm0, xmm2
add edx, dword [esp + 0x50]
movaps xmm3, xmm1
mov eax, ebx
shl eax, 4
subsd xmm3, qword [edx + eax]
comisd xmm2, xmm3
jbe 0x10094557
comisd xmm3, xmm0
jbe 0x10094557
movsd xmm3, qword [ecx + esi + 8]
subsd xmm3, qword [edx + eax + 8]
comisd xmm2, xmm3
jbe 0x10094557
comisd xmm3, xmm0
jbe 0x10094557
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x50]
mov edx, ecx
shl edx, 4
movsd xmm2, qword [edx + ebx]
movsd xmm3, qword [edx + ebx + 8]
add edx, ebx
mov ebx, dword [esp + 0x30]
shl ebx, 4
movsd xmm0, qword [ebx + edx]
movsd qword [edx], xmm0
dec esi
movsd xmm1, qword [ebx + edx + 8]
movsd qword [edx + 8], xmm1
movsd qword [ebx + edx], xmm2
movsd qword [ebx + edx + 8], xmm3
inc ecx
inc eax
cmp eax, dword [esp + 0x38]
jl 0x10093c3a
mov ebx, dword [esp + 0x54]
mov eax, dword [ebp + 0x48]
push 4
push ebx
mov dword [eax], ebx
call fcn.101beb7a
add esp, 8
cmp dword [ebp + 0x3c], 0
mov edx, dword [ebp + 0x38]
mov dword [edx], eax
je 0x10093d66
mov eax, dword [ebp + 0x48]
push 4
push dword [eax]
call fcn.101beb7a
add esp, 8
mov edx, dword [ebp + 0x3c]
mov dword [edx], eax
mov eax, dword [ebp + 0x48]
push 4
push dword [eax]
call fcn.101beb7a
add esp, 8
cmp dword [ebp + 0x44], 0
mov edx, dword [ebp + 0x40]
mov dword [edx], eax
je 0x10093d94
mov eax, dword [ebp + 0x48]
push 8
push dword [eax]
call fcn.101beb7a
add esp, 8
mov edx, dword [ebp + 0x44]
mov dword [edx], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x30], eax
test eax, eax
jle 0x10094672
mov edx, dword [esp + 0x140]
movsd xmm2, qword [0x1020c110]
mov ecx, dword [esp + 0x50]
mov esi, ecx
xor edi, edi
mov eax, ebx
mov dword [esp + 0x54], ebx
shl eax, 4
movsd xmm1, qword [eax + ecx - 0x10]
mov ecx, dword [esp + 0x30]
pxor xmm0, xmm0
subsd xmm0, xmm2
mov ebx, edi
shl ebx, 4
movsd xmm3, qword [edx + ebx]
subsd xmm3, xmm1
comisd xmm2, xmm3
jbe 0x10093e17
comisd xmm3, xmm0
jbe 0x10093e17
movsd xmm3, qword [ebx + edx + 8]
subsd xmm3, qword [eax + esi - 8]
comisd xmm2, xmm3
jbe 0x10093e17
comisd xmm3, xmm0
jbe 0x10093e17
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x30], ecx
mov esi, edi
jmp 0x10093e2b
inc edi
cmp edi, ecx
jl 0x10093dd9
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x30], ecx
mov esi, 0xffffffff
mov edi, esi
mov eax, dword [esp + 0x134]
mov dword [esp + 0x40], eax
test eax, eax
jle 0x10094666
mov eax, dword [esp + 0x13c]
movsd xmm2, qword [0x1020c110]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x34], eax
mov eax, ebx
xor edx, edx
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x58], edi
mov edi, ecx
shl eax, 4
movsd xmm1, qword [eax + ecx - 0x10]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x40]
pxor xmm0, xmm0
subsd xmm0, xmm2
mov ecx, edx
shl ecx, 4
movsd xmm3, qword [esi + ecx]
subsd xmm3, xmm1
comisd xmm2, xmm3
jbe 0x10093ec2
comisd xmm3, xmm0
jbe 0x10093ec2
movsd xmm3, qword [ecx + esi + 8]
subsd xmm3, qword [eax + edi - 8]
comisd xmm2, xmm3
jbe 0x10093ec2
comisd xmm3, xmm0
jbe 0x10093ec2
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
mov eax, edx
jmp 0x10093eda
inc edx
cmp edx, ebx
jl 0x10093e80
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
mov eax, 0xffffffff
mov edx, eax
cmp edi, 0xffffffff
je 0x100945b3
cmp edx, 0xffffffff
je 0x100945b3
test ebx, ebx
jle 0x100941d8
movsd xmm2, qword [0x101e54f0]
mov dword [esp + 0x64], eax
xor ecx, ecx
mov dword [esp + 0x144], ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x44], edx
mov dword [esp + 0x54], ebx
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x50]
shl edx, 4
movsd xmm0, qword [eax + edx]
movsd xmm1, qword [eax + edx + 8]
inc edi
mov eax, dword [esp + 0x44]
xor ebx, ebx
cmp ecx, edi
cmove edi, ebx
inc eax
cmp eax, dword [esp + 0x40]
cmove eax, ebx
cmp edi, esi
mov dword [esp + 0x44], eax
je 0x1009459a
mov edx, dword [esp + 0x140]
movsd xmm2, qword [0x1020c110]
xor eax, eax
pxor xmm3, xmm3
subsd xmm3, xmm2
mov ebx, edi
shl ebx, 4
movsd xmm4, qword [ebx + edx]
subsd xmm4, xmm0
comisd xmm2, xmm4
jbe 0x10093f98
comisd xmm4, xmm3
jbe 0x10093f98
movsd xmm4, qword [ebx + edx + 8]
subsd xmm4, xmm1
comisd xmm2, xmm4
jbe 0x10093f98
comisd xmm4, xmm3
ja 0x10093fa5
inc edi
xor ebx, ebx
cmp ecx, edi
cmove edi, ebx
inc eax
cmp edi, esi
jne 0x10093f68
mov edx, dword [esp + 0x44]
cmp edx, dword [esp + 0x64]
je 0x1009446d
mov ecx, dword [esp + 0x13c]
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x3c], esi
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x44]
xor edx, edx
pxor xmm3, xmm3
subsd xmm3, xmm2
xor esi, esi
mov eax, edi
shl eax, 4
movsd xmm4, qword [eax + ecx]
subsd xmm4, xmm0
comisd xmm2, xmm4
jbe 0x1009445c
comisd xmm4, xmm3
jbe 0x1009445c
movsd xmm4, qword [eax + ecx + 8]
subsd xmm4, xmm1
comisd xmm2, xmm4
jbe 0x1009445c
comisd xmm4, xmm3
jbe 0x1009445c
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x58]
cmp edi, esi
je 0x1009446d
push 0x10
lea ebx, [eax + edx + 2]
push ebx
call fcn.101beb7a
mov dword [esp + 0x40], eax
push 8
push ebx
call fcn.101beb7a
add esp, 0x10
mov dword [esp + 0x30], eax
mov dword [esp + 0x138], ebx
xor eax, eax
mov dword [esp + 0x34], eax
cmp esi, edi
je 0x100940b9
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x140]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x58], edi
mov edi, edx
shl edi, 4
mov ebx, esi
shl ebx, 4
movsd xmm0, qword [ebx + ecx]
movsd qword [eax + edi], xmm0
inc edx
movsd xmm1, qword [ebx + ecx + 8]
movsd qword [eax + edi + 8], xmm1
inc esi
xor ebx, ebx
cmp esi, dword [esp + 0x5c]
cmove esi, ebx
cmp esi, dword [esp + 0x58]
jne 0x10094080
mov edi, dword [esp + 0x58]
mov dword [esp + 0x34], edx
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x13c]
mov edx, dword [esp + 0x34]
dec eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x58], edi
mov edi, edx
shl edi, 4
mov esi, ebx
shl esi, 4
movsd xmm0, qword [esi + ecx]
movsd qword [eax + edi], xmm0
inc edx
movsd xmm1, qword [esi + ecx + 8]
movsd qword [eax + edi + 8], xmm1
lea esi, [ebx - 1]
test ebx, ebx
mov ebx, dword [esp + 0x60]
cmovne ebx, esi
cmp ebx, dword [esp + 0x64]
jne 0x100940dc
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x38]
movsd xmm0, qword [0x101e54f0]
movsd xmm1, qword [0x101e54f8]
movsd xmm2, qword [0x101e5500]
movsd qword [esp + 0x14], xmm0
movsd qword [esp + 0x1c], xmm1
movsd qword [esp + 0x24], xmm2
mov dword [esp + 0xc], 0xf
mov dword [esp], eax
xor ecx, ecx
mov dword [esp + 4], ecx
lea edx, [esp + 0x138]
mov dword [esp + 8], edx
mov dword [esp + 0x10], ecx
call fcn.100be0f0
cmp dword [ebp + 0x3c], 0
mov eax, dword [ebp + 0x38]
mov ecx, dword [eax]
mov ebx, dword [esp + 0x144]
mov edx, dword [esp + 0x38]
mov dword [ecx + ebx*4], edx
je 0x1009458b
mov eax, dword [ebp + 0x3c]
mov edx, dword [esp + 0x30]
mov ecx, dword [eax]
mov dword [ecx + ebx*4], edx
mov esi, dword [ebp + 0x40]
mov eax, dword [esp + 0x138]
mov ecx, ebx
mov ebx, dword [esp + 0x44]
mov edx, dword [esi]
mov esi, edi
mov dword [esp + 0x64], ebx
mov dword [edx + ecx*4], eax
mov eax, dword [esp + 0x48]
inc ecx
inc eax
cmp eax, dword [esp + 0x54]
mov dword [esp + 0x144], ecx
mov dword [esp + 0x48], eax
jge 0x100941d8
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x130]
mov dword [esp + 0x40], eax
jmp 0x10093f19
cmp dword [ebp + 0x44], 0
je 0x10094426
movsd xmm5, qword [ebp + 0x14]
pxor xmm4, xmm4
comisd xmm5, xmm4
jb 0x100943b7
movsd xmm0, qword [ebp + 0x28]
comisd xmm0, xmm4
jb 0x100943b7
mov eax, dword [ebp + 0x48]
mov edx, dword [eax]
test edx, edx
jle 0x10094584
mov eax, dword [ebp + 0x40]
mov edi, dword [eax]
mov dword [esp + 0x38], edi
and edi, 0xf
je 0x10094233
test edi, 3
jne 0x10094579
neg edi
add edi, 0x10
shr edi, 2
lea eax, [edi + 4]
cmp edx, eax
jl 0x10094579
mov eax, edx
sub eax, edi
and eax, 3
neg eax
add eax, edx
xor esi, esi
xor ebx, ebx
test edi, edi
jbe 0x10094277
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x34], eax
xor ecx, ecx
mov eax, dword [edx + ecx*4]
cmp eax, ebx
cmovg ebx, eax
cmovg esi, ecx
inc ecx
cmp ecx, edi
jb 0x1009425f
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], edx
lea ecx, [edi + 1]
mov edx, 4
movd xmm3, esi
pshufd xmm3, xmm3, 0
movd xmm6, ebx
pshufd xmm6, xmm6, 0
lea ebx, [edi + 2]
lea esi, [edi + 3]
movd xmm0, edx
mov edx, dword [esp + 0x30]
pshufd xmm1, xmm0, 0
movd xmm0, edi
movd xmm2, ecx
punpckldq xmm0, xmm2
movd xmm2, ebx
movd xmm7, esi
punpckldq xmm2, xmm7
mov ecx, dword [esp + 0x38]
punpcklqdq xmm0, xmm2
movdqa xmm7, xmmword [ecx + edi*4]
movdqa xmm2, xmm7
pxor xmm7, xmm6
add edi, 4
pcmpgtd xmm2, xmm6
pand xmm7, xmm2
pxor xmm6, xmm7
movdqa xmm7, xmm0
paddd xmm0, xmm1
cmp edi, eax
pand xmm7, xmm2
pandn xmm2, xmm3
movdqa xmm3, xmm7
por xmm3, xmm2
jb 0x100942c8
movdqa xmm2, xmm6
movdqa xmm0, xmm6
movdqa xmm1, xmm6
psrldq xmm2, 8
pcmpgtd xmm0, xmm2
pxor xmm1, xmm2
pand xmm0, xmm1
pxor xmm0, xmm2
movdqa xmm7, xmm0
movdqa xmm1, xmm0
psrldq xmm7, 4
pxor xmm0, xmm7
pcmpgtd xmm1, xmm7
pand xmm1, xmm0
pxor xmm1, xmm7
movd ecx, xmm1
movd xmm0, ecx
pshufd xmm2, xmm0, 0
pcmpeqd xmm6, xmm2
pand xmm3, xmm6
pandn xmm6, xmmword [0x101e54e0]
por xmm3, xmm6
movdqa xmm6, xmm3
movdqa xmm0, xmm3
psrldq xmm6, 8
pcmpgtd xmm0, xmm6
pxor xmm6, xmm3
pand xmm0, xmm6
pxor xmm0, xmm3
movdqa xmm3, xmm0
movdqa xmm1, xmm0
psrldq xmm3, 4
pcmpgtd xmm1, xmm3
pxor xmm3, xmm0
pand xmm1, xmm3
pxor xmm1, xmm0
movd edi, xmm1
cmp eax, edx
jae 0x100943c1
mov esi, dword [esp + 0x38]
mov ebx, dword [esi + eax*4]
cmp ebx, ecx
cmovg ecx, ebx
cmovg edi, eax
inc eax
cmp eax, edx
jb 0x100943a5
jmp 0x100943c1
mov eax, dword [ebp + 0x48]
mov edx, dword [eax]
mov edi, 0xffffffff
test edx, edx
jle 0x1009440e
mov ebx, dword [ebp + 0x44]
xor esi, esi
cmp esi, edi
je 0x10094404
mov ecx, dword [ebp + 0x38]
mov eax, dword [ebp + 0x40]
mov edx, dword [ecx]
mov eax, dword [eax]
mov ecx, dword [ebx]
lea ecx, [ecx + esi*8]
push ecx
push dword [eax + esi*4]
push dword [edx + esi*4]
movsd qword [esp + 0x3c], xmm4
call fcn.100b0a90
movsd xmm4, qword [esp + 0x3c]
add esp, 0xc
mov edx, dword [ebp + 0x48]
mov eax, dword [ebx]
addsd xmm4, qword [eax + esi*8]
mov edx, dword [edx]
inc esi
cmp esi, edx
jl 0x100943ca
movsd xmm5, qword [ebp + 0x14]
cmp edi, 0xffffffff
je 0x10094426
subsd xmm5, qword [ebp + 0x28]
mov eax, dword [ebp + 0x44]
mov edx, dword [eax]
subsd xmm5, xmm4
movsd qword [edx + edi*8], xmm5
push dword [esp + 0x140]
call fcn.101bceaa
push dword [esp + 0x140]
call fcn.101bceaa
add esp, 8
mov ecx, dword [esp + 0x148]
call fcn.101bc753
xor eax, eax
add esp, 0x174
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
inc edi
cmp ebx, edi
cmove edi, esi
inc edx
cmp edi, dword [esp + 0x64]
jne 0x10093fda
lea ebx, [esp + 0x30]
push dword [0x10219180]
push str.polygon_difference__:p2:Beruehrpunkte_nicht_gefunden_Dl_d__fat.Fehler_
push ebx
call fcn.101bc928
push 1
push ebx
push dword [0x102109fc]
push dword [0x10219180]
push str.polygon_difference
call fcn.100e45a0
add esp, 0x20
cmp dword [esp + 0x144], 0
jle 0x100944d4
mov esi, dword [ebp + 0x38]
mov edi, dword [ebp + 0x3c]
xor ebx, ebx
mov eax, dword [esi]
push dword [eax + ebx*4]
call fcn.101bceaa
pop ecx
test edi, edi
je 0x100944ca
mov eax, dword [edi]
push dword [eax + ebx*4]
call fcn.101bceaa
pop ecx
inc ebx
cmp ebx, dword [esp + 0x144]
jl 0x100944b0
mov eax, dword [ebp + 0x38]
push dword [eax]
call fcn.101bceaa
pop ecx
cmp dword [ebp + 0x3c], 0
mov eax, dword [ebp + 0x38]
mov dword [eax], 0
je 0x10094502
mov eax, dword [ebp + 0x3c]
push dword [eax]
call fcn.101bceaa
pop ecx
mov eax, dword [ebp + 0x3c]
mov dword [eax], 0
mov eax, dword [ebp + 0x40]
push dword [eax]
call fcn.101bceaa
pop ecx
cmp dword [ebp + 0x44], 0
mov eax, dword [ebp + 0x40]
mov dword [eax], 0
je 0x10094530
mov eax, dword [ebp + 0x44]
push dword [eax]
call fcn.101bceaa
pop ecx
mov eax, dword [ebp + 0x44]
mov dword [eax], 0
mov eax, dword [ebp + 0x48]
mov dword [eax], 0
mov ecx, dword [esp + 0x148]
call fcn.101bc753
mov eax, 1
add esp, 0x174
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
inc ebx
cmp ebx, edi
jb 0x10093c95
nop
lea esi, [esi]
mov eax, dword [esp + 0x3c]
inc eax
cmp eax, dword [esp + 0x38]
jl 0x10093c4e
jmp 0x10093d33
xor edi, edi
xor ecx, ecx
xor eax, eax
jmp 0x1009439d
xor edi, edi
jmp 0x100943c1
push dword [esp + 0x30]
call fcn.101bceaa
pop ecx
jmp 0x1009418f
cmp eax, dword [esp + 0x64]
je 0x1009446d
movsd xmm2, qword [0x1020c110]
xor eax, eax
jmp 0x10093fb3
lea ebx, [esp + 0x30]
push dword [0x10219180]
push str.polygon_difference__:p1:Beruehrpunkte_nicht_gefunden_Dl_d__fat.Fehler_
push ebx
call fcn.101bc928
push 1
push ebx
push dword [0x102109fc]
push dword [0x10219180]
push str.polygon_difference
call fcn.100e45a0
mov eax, dword [ebp + 0x38]
push dword [eax]
call fcn.101bceaa
add esp, 0x24
cmp dword [ebp + 0x3c], 0
mov eax, dword [ebp + 0x38]
mov dword [eax], 0
je 0x10094611
mov eax, dword [ebp + 0x3c]
push dword [eax]
call fcn.101bceaa
pop ecx
mov eax, dword [ebp + 0x3c]
mov dword [eax], 0
mov eax, dword [ebp + 0x40]
push dword [eax]
call fcn.101bceaa
pop ecx
cmp dword [ebp + 0x44], 0
mov eax, dword [ebp + 0x40]
mov dword [eax], 0
je 0x1009463f
mov eax, dword [ebp + 0x44]
push dword [eax]
call fcn.101bceaa
pop ecx
mov eax, dword [ebp + 0x44]
mov dword [eax], 0
mov eax, dword [ebp + 0x48]
mov dword [eax], 0
mov ecx, dword [esp + 0x148]
call fcn.101bc753
mov eax, 1
add esp, 0x174
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, 0xffffffff
mov edx, eax
jmp 0x10093eda
mov esi, 0xffffffff
mov edi, esi
jmp 0x10093e2b
inc eax
cmp eax, dword [esp + 0x38]
jl 0x10093c4e
mov ebx, edx
jmp 0x10093d37