Function at 0x1008974c
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push edi
push esi
push ebx
sub esp, 0x2f4
mov esi, dword [ebp + 0x24]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x80], edx
xor ecx, ecx
lea ebx, [esi*4]
mov dword [esp + 0x7c], eax
mov eax, dword [ebp + 0x3c]
mov dword [esp + 0x60], eax
mov edx, dword [0x1020ed34]
mov dword [esp + 0x2bc], edx
inc dword [0x1021097c]
mov dword [esp + 0x260], ecx
mov dword [esp + 0x264], ecx
mov dword [esp + 0x268], ecx
mov dword [esp + 0x26c], ecx
mov dword [esp + 0x28c], ecx
push ebx
mov dword [0x102109c8], ecx
mov dword [0x102109cc], ecx
call fcn.101bcde0
mov dword [esp + 0x9c], eax
mov dword [0x102109d0], eax
push ebx
call fcn.101bcde0
add esp, 8
mov ecx, dword [ebp + 0x38]
mov edi, dword [ebp + 0x34]
mov dword [esp + 0xac], ecx
xor edx, edx
test ecx, ecx
mov dword [esp + 0x8c], edi
mov dword [0x102109d4], eax
mov dword [esp + 0x88], edx
lea edi, [esi + esi]
jle 0x10089888
mov dword [esp + 0x90], edi
movd xmm0, edi
mov edi, dword [esp + 0x8c]
mov dword [esp + 0xa4], eax
mov dword [esp + 0x2b8], esi
xor ebx, ebx
xor ecx, ecx
mov dword [esp + 0x94], ebx
xor edx, edx
pshufd xmm0, xmm0, 0
mov eax, dword [edi + edx*8]
cmp eax, 0xe
je 0x1008acde
cmp eax, 0xf
jne 0x1008985a
mov eax, dword [edi + edx*8 + 4]
mov ebx, dword [eax]
mov dword [esp + 0x88], ebx
inc edx
cmp edx, dword [esp + 0xac]
jb 0x1008983c
mov ebx, dword [esp + 0x94]
mov edi, dword [esp + 0x90]
mov eax, dword [esp + 0xa4]
mov esi, dword [esp + 0x2b8]
test ecx, ecx
jne 0x10089974
mov dword [0x102109cc], 1
test esi, esi
mov dword [0x102109c8], 0
jle 0x1008996d
mov ecx, eax
and ecx, 0xf
je 0x100898bc
test cl, 3
jne 0x1008a81e
neg ecx
add ecx, 0x10
shr ecx, 2
lea edx, [ecx + 4]
cmp esi, edx
jl 0x1008a81e
mov ebx, esi
sub ebx, ecx
and ebx, 3
neg ebx
add ebx, esi
test ecx, ecx
jbe 0x100898fc
mov dword [esp + 0x2b8], esi
mov esi, dword [esp + 0x98]
xor edx, edx
mov dword [eax + edx*4], 0xffffffff
mov dword [esi + edx*4], edi
inc edx
cmp edx, ecx
jb 0x100898e6
mov esi, dword [esp + 0x2b8]
mov edx, dword [esp + 0x98]
lea edx, [edx + ecx*4]
test dl, 0xf
pcmpeqd xmm1, xmm1
je 0x10089932
mov edx, dword [esp + 0x98]
movd xmm0, edi
pshufd xmm0, xmm0, 0
movdqu xmmword [edx + ecx*4], xmm0
movdqa xmmword [eax + ecx*4], xmm1
add ecx, 4
cmp ecx, ebx
jb 0x1008991f
jmp 0x10089953
mov edx, dword [esp + 0x98]
movd xmm0, edi
pshufd xmm0, xmm0, 0
movdqa xmmword [edx + ecx*4], xmm0
movdqa xmmword [eax + ecx*4], xmm1
add ecx, 4
cmp ecx, ebx
jb 0x10089942
cmp ebx, esi
jae 0x1008996d
mov edx, dword [esp + 0x98]
mov dword [eax + ebx*4], 0xffffffff
mov dword [edx + ebx*4], edi
inc ebx
cmp ebx, esi
jb 0x1008995e
mov ecx, 1
xor ebx, ebx
push 4
push esi
add ebx, ecx
mov dword [0x102109d8], ebx
call fcn.101beb7a
mov dword [esp + 0x2a0], eax
push 4
push esi
call fcn.101beb7a
mov dword [esp + 0x2a4], eax
push 4
push esi
call fcn.101beb7a
add esp, 0x18
mov dword [esp + 0x2a0], eax
test esi, esi
jle 0x100899ea
mov dword [esp + 0x94], ebx
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x294]
xor eax, eax
mov ebx, eax
push 4
push esi
call fcn.101beb7a
add esp, 8
mov dword [edi + ebx*4], eax
inc ebx
cmp ebx, esi
jl 0x100899c9
mov ebx, dword [esp + 0x94]
mov edi, dword [esp + 0x90]
push 4
push esi
call fcn.101beb7a
mov dword [esp + 0x2bc], eax
push 4
push esi
call fcn.101beb7a
add esp, 0x10
mov dword [esp + 0x29c], eax
test esi, esi
jle 0x10089a5b
mov dword [esp + 0x94], ebx
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x2b4]
xor eax, eax
mov ebx, eax
push 4
push esi
call fcn.101beb7a
mov dword [edi + ebx*4], eax
push 4
push esi
call fcn.101beb7a
add esp, 0x10
mov edx, dword [esp + 0x29c]
mov dword [edx + ebx*4], eax
inc ebx
cmp ebx, esi
jl 0x10089a28
mov ebx, dword [esp + 0x94]
mov edi, dword [esp + 0x90]
lea eax, [ebx + esi*2]
mov dword [esp + 0x60], eax
push 8
push eax
call fcn.101beb7a
mov dword [esp + 0x280], eax
push 8
push dword [esp + 0x6c]
call fcn.101beb7a
mov dword [esp + 0x28c], eax
push 8
push dword [esp + 0x74]
call fcn.101beb7a
mov dword [esp + 0x298], eax
push 4
push dword [esp + 0x7c]
call fcn.101beb7a
mov dword [esp + 0x2a4], eax
push 4
push dword [esp + 0x84]
call fcn.101beb7a
mov dword [esp + 0x2b0], eax
push 4
push esi
call fcn.101beb7a
mov dword [esp + 0x2d8], eax
push 4
push esi
call fcn.101beb7a
mov dword [esp + 0x2e4], eax
push 4
lea ebx, [esi + ebx + 1]
push ebx
call fcn.101beb7a
mov dword [esp + 0x2f0], eax
push 4
push ebx
call fcn.101beb7a
mov dword [esp + 0x2ec], eax
push 4
push ebx
call fcn.101beb7a
mov dword [esp + 0x2c4], eax
push 4
push ebx
call fcn.101beb7a
add esp, 0x58
mov dword [esp + 0x270], eax
test esi, esi
jle 0x10089d6f
mov edx, dword [esp + 0x2ac]
and edx, 0xf
je 0x10089b42
test dl, 3
jne 0x1008a825
neg edx
add edx, 0x10
shr edx, 2
lea eax, [edx + 4]
cmp esi, eax
jl 0x1008a825
mov ecx, esi
sub ecx, edx
and ecx, 3
neg ecx
add ecx, esi
test edx, edx
jbe 0x10089bbe
mov ebx, dword [esp + 0x270]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x274]
xor eax, eax
mov dword [esp + 0x90], edi
mov dword [esp + 0x2b8], esi
mov edi, dword [esp + 0x2a8]
mov dword [ecx + eax*4], 1
lea esi, [eax + eax]
mov dword [ebx + eax*4], 0
mov dword [edi + eax*4], esi
lea esi, [eax + eax + 1]
mov edi, dword [esp + 0x2ac]
mov dword [edi + eax*4], esi
inc eax
cmp eax, edx
jb 0x10089b7e
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x90]
mov esi, dword [esp + 0x2b8]
mov dword [esp + 0x2b8], esi
mov dword [esp + 0x90], edi
mov dword [esp + 0x60], ecx
lea ecx, [edx + edx]
lea ebx, [edx + edx + 2]
lea esi, [ebx + 2]
lea edi, [ebx + 4]
mov eax, 8
movd xmm1, eax
pshufd xmm2, xmm1, 0
movd xmm1, ecx
movd xmm0, ebx
punpckldq xmm1, xmm0
lea ebx, [edx + edx + 1]
lea eax, [ebx + 2]
lea ecx, [ebx + 4]
movd xmm4, esi
movd xmm3, edi
punpckldq xmm4, xmm3
mov esi, dword [esp + 0x2a8]
punpcklqdq xmm1, xmm4
lea edi, [esi + edx*4]
mov esi, dword [esp + 0x2b8]
movd xmm0, ebx
add ebx, 6
movd xmm5, eax
punpckldq xmm0, xmm5
test edi, 0xf
mov edi, dword [esp + 0x90]
movd xmm7, ecx
mov ecx, dword [esp + 0x60]
movd xmm6, ebx
punpckldq xmm7, xmm6
punpcklqdq xmm0, xmm7
je 0x10089caf
movdqa xmm4, xmmword [0x101e5170]
mov eax, dword [esp + 0x270]
mov ebx, dword [esp + 0x274]
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x2a8]
mov dword [esp + 0x2b8], esi
mov esi, dword [esp + 0x2ac]
pxor xmm3, xmm3
movdqu xmmword [ebx + edx*4], xmm4
movdqu xmmword [eax + edx*4], xmm3
movdqu xmmword [edi + edx*4], xmm1
movdqa xmmword [esi + edx*4], xmm0
paddd xmm1, xmm2
paddd xmm0, xmm2
add edx, 4
cmp edx, ecx
jb 0x10089c8a
jmp 0x10089d08
movdqa xmm4, xmmword [0x101e5170]
mov eax, dword [esp + 0x270]
mov ebx, dword [esp + 0x274]
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x2a8]
mov dword [esp + 0x2b8], esi
mov esi, dword [esp + 0x2ac]
pxor xmm3, xmm3
movdqu xmmword [ebx + edx*4], xmm4
movdqu xmmword [eax + edx*4], xmm3
movdqa xmmword [edi + edx*4], xmm1
movdqa xmmword [esi + edx*4], xmm0
paddd xmm1, xmm2
paddd xmm0, xmm2
add edx, 4
cmp edx, ecx
jb 0x10089ce5
mov edi, dword [esp + 0x90]
mov esi, dword [esp + 0x2b8]
cmp ecx, esi
jb 0x10089d23
test esi, esi
jg 0x10089d71
jmp 0x10089daa
mov eax, dword [esp + 0x270]
mov edx, dword [esp + 0x274]
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x2a8]
mov dword [edx + ecx*4], 1
lea ebx, [ecx + ecx]
mov dword [eax + ecx*4], 0
mov dword [edi + ecx*4], ebx
lea ebx, [ecx + ecx + 1]
mov edi, dword [esp + 0x2ac]
mov dword [edi + ecx*4], ebx
inc ecx
cmp ecx, esi
jb 0x10089d38
mov edi, dword [esp + 0x90]
test esi, esi
jle 0x10089daa
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x90], edi
xor ecx, ecx
xor edx, edx
mov edi, dword [esp + 0x2b0]
mov ebx, dword [edx + eax]
mov dword [edi + ecx*4], ebx
mov ebx, dword [edx + eax + 0x10]
add edx, 0x58
mov edi, dword [esp + 0x2a4]
mov dword [edi + ecx*4], ebx
inc ecx
cmp ecx, esi
jb 0x10089d80
mov edi, dword [esp + 0x90]
mov eax, dword [ebp + 0x64]
push 0x10
push 4
pxor xmm0, xmm0
movsd qword [eax], xmm0
call fcn.101beb7a
add esp, 8
mov edx, dword [ebp + 0x28]
mov ecx, dword [esp + 0x2b0]
mov ebx, dword [esp + 0x274]
movsd xmm0, qword [edx]
movsd qword [eax], xmm0
movsd xmm1, qword [edx + 8]
movsd qword [eax + 8], xmm1
movsd xmm2, qword [edx + 0x10]
movsd qword [eax + 0x10], xmm2
movsd xmm3, qword [edx + 0x18]
movsd qword [eax + 0x18], xmm3
movsd xmm4, qword [edx + 0x20]
movsd qword [eax + 0x20], xmm4
movsd xmm5, qword [edx + 0x28]
movsd qword [eax + 0x28], xmm5
movsd xmm6, qword [edx + 0x30]
movsd qword [eax + 0x30], xmm6
movsd xmm7, qword [edx + 0x38]
movsd qword [eax + 0x38], xmm7
mov dword [ecx + esi*4 + 4], eax
mov ecx, dword [esp + 0x270]
mov dword [ebx + esi*4 + 4], 6
mov ebx, dword [esp + 0x2a4]
mov dword [ecx + esi*4 + 4], 0
test esi, esi
mov dword [ebx + esi*4 + 4], 4
jle 0x10089eba
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x2a0]
mov dword [esp + 0x2b8], esi
xor ebx, ebx
mov esi, dword [esp + 0x29c]
xor ecx, ecx
mov edi, dword [esp + 0x294]
mov edx, dword [esi + ebx*4]
mov eax, ecx
mov esi, dword [edi + ebx*4]
mov dword [esi + eax*4], ecx
mov dword [edx + eax*4], ecx
inc eax
cmp eax, dword [esp + 0x2b8]
jl 0x10089e7a
mov esi, dword [esp + 0x29c]
mov edi, dword [esp + 0x2a0]
mov dword [edi + ebx*4], 0
inc ebx
cmp ebx, dword [esp + 0x2b8]
jl 0x10089e6e
mov edi, dword [esp + 0x90]
mov esi, dword [esp + 0x2b8]
push 0x10
push 4
call fcn.101beb7a
add esp, 8
mov edx, dword [esp + 0x2b0]
mov ecx, dword [esp + 0x274]
mov ebx, dword [esp + 0x270]
mov dword [edx + esi*4], eax
mov edx, dword [esp + 0x2a4]
mov dword [ecx + esi*4], 2
test esi, esi
pxor xmm0, xmm0
mov dword [ebx + esi*4], 0
mov dword [edx + esi*4], 4
jle 0x10089f1b
mov ecx, dword [ebp + 0x18]
xor edx, edx
movaps xmm2, xmm0
movsd xmm1, qword [ecx + edx*8]
movaps xmm0, xmm1
inc edx
cmp edx, esi
maxsd xmm0, xmm2
jl 0x10089f07
movsd xmm5, qword [ebp + 0x54]
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x28]
movsd xmm4, qword [0x102109b0]
movsd qword [eax], xmm0
movsd xmm1, qword [ebx + 0x28]
movsd qword [eax + 8], xmm1
movsd qword [eax + 0x10], xmm0
movsd xmm2, qword [ebx + 0x28]
movsd qword [eax + 0x18], xmm2
movsd qword [eax + 0x20], xmm0
movsd xmm3, qword [ebx + 8]
movsd qword [eax + 0x28], xmm3
movsd qword [eax + 0x30], xmm0
movsd xmm0, qword [ebx + 8]
mov ebx, dword [esp + 0x294]
movsd qword [eax + 0x38], xmm0
mov eax, dword [esp + 0x7c]
movsd qword [esp + 0x18], xmm4
movsd qword [esp + 0x24], xmm5
mov dword [esp], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2a0]
mov dword [esp + 8], ecx
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], eax
call fcn.100872e0
xor eax, eax
mov dword [esp + 0x6c], eax
test esi, esi
jle 0x1008a023
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x2a0]
mov dword [esp + 0x90], edi
xor ebx, ebx
xor edi, edi
mov edx, dword [ebp + 0x50]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x294]
mov ecx, edi
mov edi, dword [edx + ebx*4]
cmp dword [edi + ecx*4], 1
je 0x1008acbb
inc ecx
cmp ecx, esi
jl 0x10089fef
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x2a0]
add eax, dword [edx + ebx*4]
xor edi, edi
inc ebx
cmp ebx, esi
jl 0x10089fdf
mov edi, dword [esp + 0x90]
mov dword [esp + 0x6c], eax
test esi, esi
mov eax, 0
jle 0x1008a0df
mov dword [esp + 0x90], edi
mov dword [esp + 0x2b8], esi
xor ebx, ebx
mov edx, dword [esp + 0x298]
mov dword [edx + ebx*4], 0
xor ecx, ecx
lea edx, [ebx + 1]
cmp edx, dword [esp + 0x2b8]
mov edi, edx
mov esi, edi
jge 0x1008a0c0
mov dword [esp + 0x290], eax
mov eax, dword [esp + 0x29c]
mov ecx, dword [eax + ebx*4]
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0x294]
mov dword [esp + 0x64], edx
mov eax, dword [esi + ebx*4]
cmp dword [eax + edi*4], 1
je 0x1008a958
mov eax, dword [esp + 0x2b4]
mov edx, dword [eax + ebx*4]
xor eax, eax
mov dword [edx + edi*4], eax
mov dword [ecx + edi*4], eax
inc edi
cmp edi, dword [esp + 0x2b8]
jl 0x1008a07e
mov esi, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x290]
mov ecx, dword [esp + 0x298]
mov ecx, dword [ecx + ebx*4]
add eax, ecx
cmp edx, dword [esp + 0x2b8]
mov ebx, esi
jl 0x1008a03e
mov edi, dword [esp + 0x90]
mov esi, dword [esp + 0x2b8]
mov ebx, dword [0x102109c8]
add eax, esi
test ebx, ebx
je 0x1008a0f6
add eax, esi
mov dword [esp + 0x290], eax
jmp 0x1008a0fd
mov dword [esp + 0x290], eax
push 4
push eax
call fcn.101beb7a
mov dword [esp + 0x268], eax
push 4
push dword [esp + 0x29c]
call fcn.101beb7a
mov dword [esp + 0x274], eax
push 8
push dword [esp + 0x2a4]
call fcn.101beb7a
mov dword [esp + 0x280], eax
push 1
push dword [esp + 0x2ac]
call fcn.101beb7a
add esp, 0x20
mov dword [esp + 0x64], eax
mov dword [esp + 0x26c], eax
test edi, edi
jle 0x1008a1f0
mov eax, dword [esp + 0x280]
and eax, 0xf
je 0x1008a173
test al, 7
jne 0x1008a82c
mov eax, 1
lea edx, [eax + 8]
cmp edi, edx
jl 0x1008a82c
mov ecx, edi
sub ecx, eax
and ecx, 7
neg ecx
add ecx, edi
test eax, eax
jbe 0x1008a1b2
mov dword [esp + 0x2b8], esi
mov esi, dword [esp + 0x280]
xor edx, edx
pxor xmm0, xmm0
movsd qword [esi + edx*8], xmm0
inc edx
cmp edx, eax
jb 0x1008a1a1
mov esi, dword [esp + 0x2b8]
mov edx, dword [esp + 0x280]
pxor xmm0, xmm0
movaps xmmword [edx + eax*8], xmm0
movaps xmmword [edx + eax*8 + 0x10], xmm0
movaps xmmword [edx + eax*8 + 0x20], xmm0
movaps xmmword [edx + eax*8 + 0x30], xmm0
add eax, 8
cmp eax, ecx
jb 0x1008a1bd
cmp ecx, edi
jae 0x1008a1f0
mov eax, dword [esp + 0x280]
pxor xmm0, xmm0
movsd qword [eax + ecx*8], xmm0
inc ecx
cmp ecx, edi
jb 0x1008a1e6
mov ecx, dword [0x102109cc]
test ecx, ecx
jle 0x1008a2a3
mov edi, esi
shl edi, 4
add edi, dword [esp + 0x280]
mov dword [esp + 0x60], edi
and edi, 0xf
je 0x1008a224
test edi, 7
jne 0x1008a833
mov edi, 1
lea eax, [edi + 8]
cmp ecx, eax
jl 0x1008a833
mov edx, ecx
sub edx, edi
and edx, 7
neg edx
add edx, ecx
test edi, edi
jbe 0x1008a264
movsd xmm0, qword [0x101e5218]
mov dword [esp + 0x2b8], esi
mov esi, dword [esp + 0x60]
xor eax, eax
movsd qword [esi + eax*8], xmm0
inc eax
cmp eax, edi
jb 0x1008a253
mov esi, dword [esp + 0x2b8]
mov eax, dword [esp + 0x60]
movaps xmm0, xmmword [0x101e5180]
movaps xmmword [eax + edi*8], xmm0
movaps xmmword [eax + edi*8 + 0x10], xmm0
movaps xmmword [eax + edi*8 + 0x20], xmm0
movaps xmmword [eax + edi*8 + 0x30], xmm0
add edi, 8
cmp edi, edx
jb 0x1008a26f
cmp edx, ecx
jae 0x1008a2a3
movsd xmm0, qword [0x101e5218]
mov eax, dword [esp + 0x60]
movsd qword [eax + edx*8], xmm0
inc edx
cmp edx, ecx
jb 0x1008a299
test ebx, ebx
jle 0x1008a35d
cvtsi2ss xmm0, dword [esp + 0x88]
pxor xmm1, xmm1
movss xmm1, xmm0
cvtps2pd xmm2, xmm1
ucomisd xmm2, qword [0x101e5220]
jp 0x1008a2cf
je 0x1008a8c3
mov eax, esi
shl eax, 4
add eax, dword [esp + 0x280]
ucomisd xmm2, qword [0x101e5218]
jp 0x1008a2eb
je 0x1008a841
lea edx, [eax + ecx*8]
mov ecx, edx
and ecx, 0xf
je 0x1008a303
test cl, 7
jne 0x1008a83a
mov ecx, 1
lea eax, [ecx + 8]
cmp ebx, eax
jl 0x1008a83a
mov eax, ebx
sub eax, ecx
and eax, 7
neg eax
add eax, ebx
test ecx, ecx
jbe 0x1008a32d
xor edi, edi
pxor xmm0, xmm0
movsd qword [edx + edi*8], xmm0
inc edi
cmp edi, ecx
jb 0x1008a323
pxor xmm0, xmm0
movaps xmmword [edx + ecx*8], xmm0
movaps xmmword [edx + ecx*8 + 0x10], xmm0
movaps xmmword [edx + ecx*8 + 0x20], xmm0
movaps xmmword [edx + ecx*8 + 0x30], xmm0
add ecx, 8
cmp ecx, eax
jb 0x1008a331
cmp eax, ebx
jae 0x1008a35d
pxor xmm0, xmm0
movsd qword [edx + eax*8], xmm0
inc eax
cmp eax, ebx
jb 0x1008a353
mov ebx, dword [esp + 0x260]
mov edi, dword [esp + 0x264]
mov eax, dword [esp + 0x298]
mov edx, dword [esp + 0x290]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x268]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x64]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x278]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x27c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ebx
mov ebx, dword [ebp + 0x28]
mov dword [esp + 0x28], edi
mov edi, dword [ebp + 0x14]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x30], edx
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x34], ecx
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x2b4]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x29c]
mov dword [esp + 0x4c], ebx
call fcn.1008e04c
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x4c]
mov dword [esp + 0xc], ebx
mov ebx, dword [ebp + 0x28]
mov dword [esp + 0x10], edi
mov edi, dword [ebp + 0x2c]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ebx
mov ebx, dword [ebp + 0x3c]
mov dword [esp + 0x28], edi
mov edi, dword [ebp + 0x5c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2a8]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x2ac]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
lea ecx, [esp + 0x260]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x84]
lea ebx, [esp + 0x264]
mov dword [esp + 0x4c], ebx
lea edi, [esp + 0x290]
mov dword [esp + 0x50], edi
lea eax, [esp + 0x268]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x7c]
lea edx, [esp + 0x26c]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x80]
call fcn.1008e9ac
mov eax, dword [0x102109d8]
lea edx, [esp + 0x28c]
push dword [ebp + 0x68]
lea ecx, [eax + esi*2]
push edx
push dword [esp + 0x274]
push dword [esp + 0x288]
push dword [esp + 0x288]
push dword [esp + 0x27c]
push dword [esp + 0x298]
push ecx
push dword [esp + 0x2b0]
push dword [esp + 0x288]
push dword [esp + 0x288]
call fcn.100874e0
add esp, 0x2c
mov ebx, eax
mov edi, dword [esp + 0x28c]
test ebx, ebx
jne 0x1008a59a
mov edx, dword [0x102109cc]
mov ebx, dword [ebp + 0x64]
mov eax, esi
shl eax, 4
lea ecx, [eax + edx*8]
movsd xmm0, qword [edi + ecx - 8]
movsd qword [ebx], xmm0
test esi, esi
jle 0x1008a951
mov ecx, dword [ebp + 0x60]
xor edx, edx
xor eax, eax
mov ebx, dword [ecx]
movsd xmm0, qword [edi + eax]
movsd qword [ebx + eax], xmm0
mov ebx, dword [ecx]
inc edx
mov edi, dword [esp + 0x28c]
movsd xmm1, qword [edi + eax + 8]
movsd qword [ebx + eax + 8], xmm1
add eax, 0x10
cmp edx, esi
jge 0x1008a58f
mov edi, dword [esp + 0x28c]
jmp 0x1008a55d
mov edi, dword [esp + 0x28c]
xor ebx, ebx
jmp 0x1008a5a5
mov eax, 9
cmp ebx, 1
cmovne ebx, eax
mov eax, dword [esp + 0x2b0]
push dword [eax + esi*4 + 4]
call fcn.101bceaa
mov eax, dword [esp + 0x2b4]
push dword [eax + esi*4]
call fcn.101bceaa
push dword [esp + 0x2b8]
call fcn.101bceaa
push dword [esp + 0x2a4]
call fcn.101bceaa
push 0
call fcn.101bceaa
push 0
call fcn.101bceaa
push dword [esp + 0x29c]
call fcn.101bceaa
push dword [esp + 0x2a4]
call fcn.101bceaa
push dword [esp + 0x2c8]
call fcn.101bceaa
push dword [esp + 0x2d0]
call fcn.101bceaa
push dword [esp + 0x294]
call fcn.101bceaa
push dword [esp + 0x294]
call fcn.101bceaa
push dword [esp + 0x2a8]
call fcn.101bceaa
push dword [esp + 0x2b0]
call fcn.101bceaa
push dword [esp + 0x2b8]
call fcn.101bceaa
add esp, 0x3c
mov eax, dword [esp + 0x290]
mov edx, dword [esp + 0x260]
test eax, eax
jle 0x1008a6a8
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], edi
mov edi, eax
xor ecx, ecx
mov ebx, ecx
mov dword [esp + 0x2b8], esi
mov esi, edx
push dword [esi + ebx*4]
call fcn.101bceaa
pop ecx
mov dword [esi + ebx*4], 0
inc ebx
cmp ebx, edi
jl 0x1008a682
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
mov edx, esi
mov esi, dword [esp + 0x2b8]
push edx
call fcn.101bceaa
mov dword [esp + 0x264], 0
push dword [esp + 0x268]
call fcn.101bceaa
add esp, 8
mov dword [esp + 0x264], 0
test esi, esi
jle 0x1008a74c
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], edi
mov dword [esp + 0x2b8], esi
mov esi, dword [esp + 0x2b4]
xor eax, eax
mov ebx, eax
mov edi, eax
mov eax, edi
mov edx, dword [esi + ebx*4]
mov edx, dword [edx + edi*4]
test edx, edx
je 0x1008a706
push edx
call fcn.101bceaa
pop ecx
inc edi
cmp edi, dword [esp + 0x2b8]
jl 0x1008a6f5
push dword [esi + ebx*4]
xor edi, edi
call fcn.101bceaa
mov edx, dword [esp + 0x2a0]
push dword [edx + ebx*4]
call fcn.101bceaa
add esp, 8
inc ebx
cmp ebx, dword [esp + 0x2b8]
jl 0x1008a6f3
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x2b4], esi
mov esi, dword [esp + 0x2b8]
push dword [esp + 0x2b4]
call fcn.101bceaa
push dword [esp + 0x2a0]
call fcn.101bceaa
add esp, 8
test esi, esi
jle 0x1008a794
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x294]
xor eax, eax
mov ebx, eax
push dword [edi + ebx*4]
call fcn.101bceaa
pop ecx
inc ebx
cmp ebx, esi
jl 0x1008a77e
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
push dword [esp + 0x294]
call fcn.101bceaa
push dword [esp + 0x2a4]
call fcn.101bceaa
push dword [esp + 0x2ac]
call fcn.101bceaa
push dword [esp + 0x280]
call fcn.101bceaa
push dword [esp + 0x280]
call fcn.101bceaa
push edi
call fcn.101bceaa
push dword [0x102109d0]
call fcn.101bceaa
push dword [0x102109d4]
mov dword [0x102109d0], 0
call fcn.101bceaa
add esp, 0x20
mov dword [0x102109d4], 0
mov ecx, dword [esp + 0x2bc]
call fcn.101bc753
mov eax, ebx
add esp, 0x2f4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor ebx, ebx
jmp 0x10089953
xor ecx, ecx
jmp 0x10089d16
xor ecx, ecx
jmp 0x1008a1d7
xor edx, edx
jmp 0x1008a289
xor eax, eax
jmp 0x1008a34b
lea edx, [eax + ecx*8]
mov ecx, edx
and ecx, 0xf
je 0x1008a855
test cl, 7
jne 0x1008a8bf
mov ecx, 1
lea eax, [ecx + 8]
cmp ebx, eax
jl 0x1008a8bf
mov eax, ebx
sub eax, ecx
and eax, 7
neg eax
add eax, ebx
test ecx, ecx
jbe 0x1008a87f
movsd xmm0, qword [0x101e5210]
xor edi, edi
movsd qword [edx + edi*8], xmm0
inc edi
cmp edi, ecx
jb 0x1008a875
movaps xmm0, xmmword [0x101e51a0]
movaps xmmword [edx + ecx*8], xmm0
movaps xmmword [edx + ecx*8 + 0x10], xmm0
movaps xmmword [edx + ecx*8 + 0x20], xmm0
movaps xmmword [edx + ecx*8 + 0x30], xmm0
add ecx, 8
cmp ecx, eax
jb 0x1008a886
cmp eax, ebx
jae 0x1008a35d
movsd xmm0, qword [0x101e5210]
movsd qword [edx + eax*8], xmm0
inc eax
cmp eax, ebx
jb 0x1008a8b0
jmp 0x1008a35d
xor eax, eax
jmp 0x1008a8a0
mov eax, esi
shl eax, 4
add eax, dword [esp + 0x280]
lea edx, [eax + ecx*8]
mov ecx, edx
and ecx, 0xf
je 0x1008a8e3
test cl, 7
jne 0x1008a94d
mov ecx, 1
lea eax, [ecx + 8]
cmp ebx, eax
jl 0x1008a94d
mov eax, ebx
sub eax, ecx
and eax, 7
neg eax
add eax, ebx
test ecx, ecx
jbe 0x1008a90d
movsd xmm0, qword [0x101e5208]
xor edi, edi
movsd qword [edx + edi*8], xmm0
inc edi
cmp edi, ecx
jb 0x1008a903
movaps xmm0, xmmword [0x101e5190]
movaps xmmword [edx + ecx*8], xmm0
movaps xmmword [edx + ecx*8 + 0x10], xmm0
movaps xmmword [edx + ecx*8 + 0x20], xmm0
movaps xmmword [edx + ecx*8 + 0x30], xmm0
add ecx, 8
cmp ecx, eax
jb 0x1008a914
cmp eax, ebx
jae 0x1008a35d
movsd xmm0, qword [0x101e5208]
movsd qword [edx + eax*8], xmm0
inc eax
cmp eax, ebx
jb 0x1008a93e
jmp 0x1008a35d
xor eax, eax
jmp 0x1008a92e
xor ebx, ebx
jmp 0x1008a5a5
mov dword [esp + 0x60], ecx
mov eax, ebx
mov edx, edi
call fcn.10089700
mov ecx, dword [esp + 0x60]
test eax, eax
jne 0x1008a08b
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x2b8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x2b4]
mov dword [esp + 0x18], eax
mov eax, dword [edx + ebx*4]
lea edx, [eax + edi*4]
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x1c], edx
mov edx, dword [ebp + 0x18]
lea ecx, [ecx + edi*4]
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp + 0x1c]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x28], edx
mov edx, dword [ebp + 0x3c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [ebp + 0x5c]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0x4c]
mov dword [esp + 0x34], edx
mov edx, dword [ebp + 0x2c]
mov dword [esp + 0x38], ecx
mov ecx, dword [ebp + 0x30]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ecx
mov eax, ebx
mov edx, edi
mov ecx, 1
call fcn.1008b01c
test eax, eax
jne 0x1008aa2e
mov ecx, dword [esp + 0x29c]
mov eax, dword [esp + 0x298]
mov ecx, dword [ecx + ebx*4]
mov edx, dword [eax + ebx*4]
mov dword [esp + 0x60], ecx
mov ecx, dword [ecx + edi*4]
lea edx, [edx + ecx - 1]
mov ecx, dword [esp + 0x60]
mov dword [eax + ebx*4], edx
jmp 0x1008a09d
mov esi, dword [esp + 0x2b8]
lea ebx, [esp + 0x60]
push dword [0x1021097c]
push dword [0x10219180]
push str.Problem_in_pbc_main__:_Keinen_konvexen_Hodographen_gefunden__dl_d_pz_li_
push ebx
call fcn.101bc928
mov eax, 1
push eax
push eax
push ebx
call fcn.100e3720
mov eax, dword [esp + 0x2cc]
push dword [eax + esi*4 + 4]
call fcn.101bceaa
mov eax, dword [esp + 0x2d0]
push dword [eax + esi*4]
call fcn.101bceaa
push dword [esp + 0x2d4]
call fcn.101bceaa
push dword [esp + 0x2c0]
call fcn.101bceaa
push 0
call fcn.101bceaa
push 0
call fcn.101bceaa
push dword [esp + 0x2b8]
call fcn.101bceaa
push dword [esp + 0x2c0]
call fcn.101bceaa
push dword [esp + 0x2e4]
call fcn.101bceaa
push dword [esp + 0x2ec]
call fcn.101bceaa
push dword [esp + 0x2b0]
call fcn.101bceaa
mov dword [esp + 0x2b4], 0
push dword [esp + 0x2b0]
call fcn.101bceaa
push dword [esp + 0x2c4]
call fcn.101bceaa
push dword [esp + 0x2cc]
call fcn.101bceaa
push dword [esp + 0x2d4]
call fcn.101bceaa
add esp, 0x58
mov ebx, dword [esp + 0x260]
test ebx, ebx
je 0x1008ab6b
mov eax, dword [esp + 0x290]
test eax, eax
jle 0x1008ab59
mov dword [esp + 0x2b8], esi
xor edi, edi
mov esi, eax
push dword [ebx + edi*4]
call fcn.101bceaa
pop ecx
mov dword [ebx + edi*4], 0
inc edi
cmp edi, esi
jl 0x1008ab3d
mov esi, dword [esp + 0x2b8]
push ebx
call fcn.101bceaa
pop ecx
mov dword [esp + 0x260], 0
push dword [esp + 0x264]
call fcn.101bceaa
pop ecx
mov ebx, dword [esp + 0x2b4]
mov dword [esp + 0x264], 0
xor edi, edi
mov dword [esp + 0x2b8], esi
mov esi, dword [esp + 0x29c]
xor eax, eax
mov esi, eax
mov edx, dword [ebx + edi*4]
mov edx, dword [edx + esi*4]
test edx, edx
je 0x1008abaf
push edx
call fcn.101bceaa
pop ecx
inc esi
cmp esi, dword [esp + 0x2b8]
jl 0x1008ab9e
mov esi, dword [esp + 0x29c]
push dword [ebx + edi*4]
call fcn.101bceaa
push dword [esi + edi*4]
call fcn.101bceaa
add esp, 8
inc edi
cmp edi, dword [esp + 0x2b8]
jl 0x1008ab9a
mov esi, dword [esp + 0x2b8]
mov dword [esp + 0x2b4], ebx
push dword [esp + 0x2b4]
call fcn.101bceaa
push dword [esp + 0x2a0]
call fcn.101bceaa
add esp, 8
mov edi, dword [esp + 0x294]
xor ebx, ebx
push dword [edi + ebx*4]
call fcn.101bceaa
pop ecx
inc ebx
cmp ebx, esi
jl 0x1008ac0f
push dword [esp + 0x294]
call fcn.101bceaa
push dword [esp + 0x2a4]
call fcn.101bceaa
push dword [esp + 0x2ac]
call fcn.101bceaa
push dword [esp + 0x280]
call fcn.101bceaa
push dword [esp + 0x280]
call fcn.101bceaa
push dword [esp + 0x2a0]
call fcn.101bceaa
mov dword [esp + 0x2a4], 0
push dword [0x102109d0]
call fcn.101bceaa
push dword [0x102109d4]
mov dword [0x102109d0], 0
call fcn.101bceaa
add esp, 0x20
mov dword [0x102109d4], 0
mov ecx, dword [esp + 0x2bc]
call fcn.101bc753
mov eax, 9
add esp, 0x2f4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov edi, dword [eax + ebx*4]
cmp dword [edi + ecx*4], 0
jne 0x10089ffc
mov dword [edi + ecx*4], 1
mov edi, dword [esp + 0x2a0]
inc dword [edi + ebx*4]
jmp 0x10089ffc
mov eax, dword [edi + edx*8 + 4]
mov esi, dword [eax + 0xc]
mov dword [esp + 0x70], eax
test esi, esi
jle 0x1008ade2
mov eax, dword [eax + 8]
mov dword [esp + 0x60], eax
and eax, 0xf
je 0x1008ad0d
test al, 3
jne 0x1008afeb
neg eax
add eax, 0x10
shr eax, 2
lea ebx, [eax + 4]
cmp esi, ebx
jl 0x1008afeb
mov ebx, esi
sub ebx, eax
and ebx, 3
neg ebx
add ebx, esi
test eax, eax
mov dword [esp + 0x78], ebx
jbe 0x1008ad4d
mov edi, dword [esp + 0x60]
mov dword [esp + 0x64], edx
xor ebx, ebx
mov edx, dword [edi + ebx*4]
cmp edx, ecx
cmovge ecx, edx
inc ebx
cmp ebx, eax
jb 0x1008ad35
mov edx, dword [esp + 0x64]
mov edi, dword [esp + 0x8c]
mov ebx, dword [esp + 0x60]
movd xmm1, ecx
mov ecx, dword [esp + 0x78]
pshufd xmm1, xmm1, 0
movdqa xmm2, xmmword [ebx + eax*4]
movdqa xmm3, xmm2
pxor xmm2, xmm1
add eax, 4
pcmpgtd xmm3, xmm1
pand xmm3, xmm2
pxor xmm1, xmm3
cmp eax, ecx
jb 0x1008ad5e
movdqa xmm2, xmm1
movdqa xmm3, xmm1
mov dword [esp + 0x78], ecx
psrldq xmm2, 8
pcmpgtd xmm3, xmm2
pxor xmm1, xmm2
pand xmm3, xmm1
pxor xmm3, xmm2
movdqa xmm1, xmm3
movdqa xmm4, xmm3
psrldq xmm1, 4
pxor xmm3, xmm1
pcmpgtd xmm4, xmm1
pand xmm4, xmm3
pxor xmm4, xmm1
movd ecx, xmm4
cmp esi, dword [esp + 0x78]
jbe 0x1008ade2
mov ebx, dword [esp + 0x78]
mov edi, dword [esp + 0x60]
mov eax, dword [edi + ebx*4]
cmp eax, ecx
cmovge ecx, eax
inc ebx
cmp ebx, esi
jb 0x1008adce
mov edi, dword [esp + 0x8c]
inc ecx
mov dword [esp + 0x94], ecx
test esi, esi
mov dword [0x102109c8], ecx
mov dword [0x102109cc], ecx
jle 0x1008985a
mov eax, dword [esp + 0x70]
mov ebx, dword [eax + 8]
mov dword [esp + 0x6c], ebx
and ebx, 0xf
je 0x1008ae1f
test bl, 3
jne 0x1008aff6
neg ebx
add ebx, 0x10
shr ebx, 2
lea eax, [ebx + 4]
cmp esi, eax
jl 0x1008aff6
mov eax, esi
sub eax, ebx
and eax, 3
neg eax
add eax, esi
test ebx, ebx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x2b8]
lea eax, [ecx + eax*2]
mov dword [esp + 0xa0], eax
jbe 0x1008aea6
mov dword [esp + 0x9c], esi
mov esi, dword [esp + 0x98]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x68], ecx
xor eax, eax
mov edi, dword [esp + 0x2b8]
mov ecx, dword [edx + eax*4]
lea edi, [ecx + edi*2]
add ecx, dword [esp + 0xa0]
mov dword [esi + eax*4], edi
mov edi, dword [esp + 0xa4]
mov dword [edi + eax*4], ecx
inc eax
cmp eax, ebx
jb 0x1008ae6a
mov esi, dword [esp + 0x9c]
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x8c]
mov eax, dword [esp + 0xa4]
lea eax, [eax + ebx*4]
test al, 0xf
je 0x1008af04
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x98]
movd xmm1, dword [esp + 0xa0]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0xa4]
pshufd xmm1, xmm1, 0
movdqa xmm2, xmm0
movdqa xmm3, xmmword [edx + ebx*4]
paddd xmm2, xmm3
movdqu xmmword [edi + ebx*4], xmm2
paddd xmm3, xmm1
movdqu xmmword [ecx + ebx*4], xmm3
add ebx, 4
cmp ebx, eax
jb 0x1008aee0
jmp 0x1008af52
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x98]
movd xmm1, dword [esp + 0xa0]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0xa4]
pshufd xmm1, xmm1, 0
movdqa xmm2, xmm0
movdqa xmm3, xmmword [edx + ebx*4]
paddd xmm2, xmm3
movdqu xmmword [edi + ebx*4], xmm2
paddd xmm3, xmm1
movdqa xmmword [ecx + ebx*4], xmm3
add ebx, 4
cmp ebx, eax
jb 0x1008af30
mov edx, dword [esp + 0x64]
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x74], eax
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x68]
cmp esi, dword [esp + 0x74]
jbe 0x1008985a
mov eax, dword [esp + 0x2b8]
mov dword [esp + 0x9c], esi
mov esi, dword [esp + 0x6c]
lea eax, [ecx + eax*2]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x2b8]
mov ebx, dword [esi + ecx*4]
lea edi, [ebx + edi*2]
add ebx, dword [esp + 0xa8]
mov dword [eax + ecx*4], edi
mov dword [edx + ecx*4], ebx
inc ecx
cmp ecx, dword [esp + 0x9c]
jb 0x1008afac
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x8c]
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0x64]
jmp 0x1008985a
xor eax, eax
mov dword [esp + 0x78], eax
jmp 0x1008adc0
xor eax, eax
mov dword [esp + 0x74], eax
jmp 0x1008af6c