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

Disassembly:
sub esp, 0xb4
push ebx
mov ebx, ecx
mov dword [esp + 0x68], 0xffffffff
push ebp
push esi
push edi
mov esi, dword [ebx + 4]
lea ecx, [ebx + 0x10]
mov eax, esi
mov dword [esp + 0x44], ebx
neg eax
mov dword [esp + 0x78], 1
xor edx, edx
mov dword [esp + 0x7c], eax
mov eax, dword [ebx]
mov edi, ecx
mov dword [esp + 0x48], esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x40], ecx
nop word [eax + eax]
mov ecx, esi
mov dword [esp + 0x18], 0
imul esi, eax
test esi, esi
jle 0x1017d067
xor esi, esi
xor ebp, ebp
nop dword [eax]
mov edx, dword [ebx + edx*4 + 8]
xor ecx, ecx
add edx, ebp
nop dword [eax + eax]
movzx eax, word [edx]
lea edx, [edx + 2]
cvttss2si eax, dword [eax*4 + 0x1040a378]
mov word [esp + ecx*2 + 0x50], ax
inc ecx
cmp ecx, 3
jl 0x1017cf90
movzx eax, word [esp + 0x50]
add ebp, 6
mov edx, dword [esp + 0x18]
inc edx
mov dword [esp + 0x18], edx
movd xmm3, eax
movzx eax, word [esp + 0x52]
cvtdq2ps xmm3, xmm3
movd xmm4, eax
movzx eax, word [esp + 0x54]
movaps xmm1, xmm3
mulss xmm1, dword [ebx + 0x34]
cvtdq2ps xmm4, xmm4
movd xmm2, eax
mov eax, dword [edi]
movaps xmm0, xmm4
mulss xmm0, dword [ebx + 0x38]
cvtdq2ps xmm2, xmm2
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [ebx + 0x3c]
addss xmm1, xmm0
movaps xmm0, xmm3
cvttss2si ecx, xmm1
movaps xmm1, xmm4
mov dword [esi + eax], ecx
mulss xmm0, dword [ebx + 0x40]
mov eax, dword [edi]
mulss xmm1, dword [ebx + 0x44]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [ebx + 0x48]
addss xmm1, xmm0
cvttss2si ecx, xmm1
mov dword [esi + eax + 4], ecx
mulss xmm4, dword [ebx + 0x50]
mov eax, dword [edi]
mulss xmm3, dword [ebx + 0x4c]
mulss xmm2, dword [ebx + 0x54]
addss xmm4, xmm3
addss xmm4, xmm2
cvttss2si ecx, xmm4
mov dword [esi + eax + 8], ecx
add esi, 0xc
mov ecx, dword [ebx + 4]
mov eax, ecx
imul eax, dword [ebx]
cmp edx, eax
mov edx, dword [esp + 0x14]
jl 0x1017cf80
mov eax, dword [ebx]
inc edx
add edi, 4
mov dword [esp + 0x14], edx
mov esi, ecx
cmp edx, 2
jl 0x1017cf60
mov edx, dword [ebx + 0x58]
xor ebp, ebp
xor eax, eax
mov dword [esp + 0x30], ebp
cmp ax, word [edx + 0x1c]
jae 0x1017d3fd
mov esi, edx
lea edi, [ebp + 4]
mov dword [esp + 0x2c], 0
imul edi, ecx
xor eax, eax
mov edx, esi
add edi, 4
mov dword [esp + 0x10], edi
cmp ax, word [esi + 0x1e]
jae 0x1017d3ea
mov ecx, dword [esp + 0x48]
lea eax, [ecx*4]
sub eax, ecx
neg eax
shl eax, 2
mov dword [esp + 0x28], eax
lea eax, [ecx + ecx*2]
shl eax, 2
lea ecx, [edi + edi*2]
mov dword [esp + 0x38], eax
lea eax, [ebx + 0x1c]
shl ecx, 2
mov dword [esp + 0x4c], eax
mov dword [esp + 0x14], ecx
nop word [eax + eax]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
mov edi, dword [eax]
add edi, ecx
mov esi, dword [edi]
mov edx, esi
sub edx, dword [edi - 0xc]
mov ebx, dword [edi + 8]
mov ecx, edx
mov ebp, dword [edi + 4]
sar ecx, 0x1f
mov eax, ecx
xor eax, edx
mov edx, dword [esp + 0x1c]
sub eax, ecx
mov ecx, ebx
sub ecx, dword [edi - 4]
imul ecx, ecx
movd xmm0, eax
mov eax, ebp
sub eax, dword [edi - 8]
imul eax, eax
cvtdq2ps xmm0, xmm0
add eax, ecx
mov ecx, esi
sub ecx, dword [edi + 0xc]
mov dword [esp + edx + 0xa4], eax
mov eax, ecx
sar eax, 0x1f
xor ecx, eax
movss dword [esp + edx + 0x84], xmm0
sub ecx, eax
mov eax, ebp
sub eax, dword [edi + 0x10]
imul eax, eax
movd xmm0, ecx
mov ecx, ebx
sub ecx, dword [edi + 0x14]
imul ecx, ecx
cvtdq2ps xmm0, xmm0
add eax, ecx
mov ecx, esi
mov dword [esp + edx + 0xa8], eax
mov eax, dword [esp + 0x28]
movss dword [esp + edx + 0x88], xmm0
sub ecx, dword [eax + edi]
mov eax, ecx
sar eax, 0x1f
xor ecx, eax
sub ecx, eax
mov eax, dword [esp + 0x28]
movd xmm0, ecx
mov ecx, ebx
sub ecx, dword [eax + edi + 8]
mov eax, ebp
cvtdq2ps xmm0, xmm0
imul ecx, ecx
movss dword [esp + edx + 0x8c], xmm0
mov edx, dword [esp + 0x28]
sub eax, dword [edx + edi + 4]
mov edx, dword [esp + 0x1c]
imul eax, eax
add eax, ecx
mov dword [esp + edx + 0xac], eax
mov eax, dword [esp + 0x38]
sub esi, dword [eax + edi]
mov ecx, esi
sar ecx, 0x1f
mov eax, ecx
xor eax, esi
sub eax, ecx
movd xmm0, eax
mov eax, dword [esp + 0x38]
cvtdq2ps xmm0, xmm0
sub ebp, dword [eax + edi + 4]
sub ebx, dword [eax + edi + 8]
mov eax, dword [esp + 0x18]
imul ebp, ebp
imul ebx, ebx
movss dword [esp + edx + 0x90], xmm0
add ebp, ebx
add eax, 4
mov dword [esp + edx + 0xb0], ebp
mov ecx, dword [esp + 0x14]
add edx, 0x10
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
cmp edx, 0x20
jl 0x1017d100
movss xmm1, dword [esp + 0x84]
movss xmm0, dword [esp + 0x9c]
maxss xmm1, dword [esp + 0x88]
maxss xmm0, dword [esp + 0xa0]
comiss xmm0, xmm1
ja 0x1017d251
movaps xmm1, xmm0
mov edx, dword [esp + 0xa8]
mov ecx, edx
mov esi, dword [esp + 0xa4]
cmp esi, edx
mov edi, dword [esp + 0xc0]
mov eax, edi
mov ebx, dword [esp + 0xbc]
cmovg ecx, esi
cmp ebx, edi
cmovg eax, ebx
cmp ecx, eax
jge 0x1017d286
cmp esi, edx
cmovg edx, esi
jmp 0x1017d28d
cmp ebx, edi
mov edx, edi
cmovg edx, ebx
mov eax, dword [esp + 0x4c]
xor ebp, ebp
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x24], eax
nop
mov esi, dword [eax - 0xc]
xor ebx, ebx
add esi, dword [esp + 0x14]
mov ecx, ebp
shl ecx, 4
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x20], ecx
nop word [eax + eax]
comiss xmm1, dword [esp + ecx + 0x84]
jb 0x1017d381
mov edi, dword [esp + 0x10]
cmp dword [esp + ecx + 0xa4], edx
jg 0x1017d385
mov ebp, dword [esp + ebx*4 + 0x74]
mov eax, dword [eax]
lea ecx, [edi + ebp]
inc byte [ecx + eax]
mov eax, ebx
shr eax, 1
cmp eax, dword [esp + 0x18]
jne 0x1017d49f
lea eax, [ebp*2]
mov edi, 2
add eax, ebp
lea ebx, [ebp*2]
shl eax, 2
mov dword [esp + 0x34], eax
lea eax, [ebp*2]
add eax, ebp
lea edx, [eax*8 + 4]
add edx, esi
mov ecx, dword [esi]
sub ecx, dword [edx - 4]
mov eax, ecx
sar eax, 0x1f
xor ecx, eax
sub ecx, eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x1017d375
mov ecx, dword [esi + 8]
sub ecx, dword [edx + 4]
mov eax, dword [esi + 4]
sub eax, dword [edx]
imul ecx, ecx
imul eax, eax
add ecx, eax
cmp ecx, dword [esp + 0x1c]
jge 0x1017d375
mov eax, dword [esp + 0x24]
inc edi
mov ecx, dword [esp + 0x10]
add edx, dword [esp + 0x34]
add ecx, ebx
add ebx, ebp
mov eax, dword [eax]
inc byte [ecx + eax]
cmp edi, 4
jl 0x1017d327
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
inc ebx
add ecx, 4
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x20], ecx
cmp ebx, 4
jl 0x1017d2c0
mov ebp, dword [esp + 0x18]
add eax, 4
inc ebp
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], ebp
cmp ebp, 2
jl 0x1017d2a0
mov ebx, dword [esp + 0x44]
inc edi
mov ebp, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
inc ebp
add ecx, 0xc
mov dword [esp + 0x2c], ebp
mov edx, dword [ebx + 0x58]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
movzx eax, word [edx + 0x1e]
cmp ebp, eax
jl 0x1017d0f0
mov ecx, dword [ebx + 4]
mov ebp, dword [esp + 0x30]
movzx eax, word [edx + 0x1c]
inc ebp
mov dword [esp + 0x30], ebp
mov esi, edx
cmp ebp, eax
jl 0x1017d091
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x2c], ecx
cmp ax, word [edx + 0x1c]
jae 0x1017d739
nop
add ecx, 4
mov dword [esp + 0x30], 0
imul ecx, dword [ebx + 4]
xor eax, eax
mov esi, edx
add ecx, 4
mov dword [esp + 0x14], ecx
cmp ax, word [edx + 0x1e]
jae 0x1017d722
lea eax, [ecx + ecx*2]
shl eax, 2
lea edx, [ebx + 0x1c]
mov dword [esp + 0x10], eax
mov esi, dword [ebx + 4]
xor edi, edi
mov ebp, esi
mov ebx, edx
not ebp
nop dword [eax]
mov edx, dword [ebx]
lea ebx, [ebx + 4]
add edx, ecx
mov eax, edx
sub eax, esi
mov cl, byte [eax]
add cl, byte [esi + edx - 1]
add cl, byte [edx - 1]
add cl, byte [edx + ebp]
add cl, byte [edx]
mov al, byte [edx + ebp + 2]
add al, byte [edx + 1]
add cl, byte [esi + edx]
add al, byte [esi + edx + 1]
add al, cl
mov ecx, dword [esp + 0x14]
mov byte [esp + edi + 0x24], al
inc edi
cmp edi, 2
jl 0x1017d450
mov ax, word [esp + 0x24]
cmp al, ah
je 0x1017d4ac
setl dl
lea edx, [edx*2 + 3]
jmp 0x1017d6ef
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
jmp 0x1017d385
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov esi, dword [edx + 0x14]
mov edx, dword [edx + 4]
add ecx, esi
mov eax, ecx
mov ebx, dword [ecx + 8]
lea edi, [edx + edx*2]
add ebx, ebx
shl edi, 2
sub eax, edi
sub ebx, dword [edi + ecx + 8]
sub ebx, dword [eax + 8]
mov dword [esp + 0x5c], ebx
mov ebx, dword [ecx + 4]
add ebx, ebx
sub ebx, dword [eax + 4]
sub ebx, dword [edi + ecx + 4]
mov dword [esp + 0x60], ebx
mov ebx, dword [ecx]
add ebx, ebx
sub ebx, dword [eax]
mov eax, ebp
sub ebx, dword [edi + ecx]
sub eax, edx
mov dword [esp + 0x64], ebx
lea eax, [eax + eax*2]
mov ebx, dword [esi + eax*4 + 8]
lea ecx, [esi + eax*4]
add ebx, ebx
mov eax, ecx
sub ebx, dword [edi + ecx + 8]
sub eax, edi
sub ebx, dword [eax + 8]
mov dword [esp + 0x28], ebx
mov ebx, dword [ecx + 4]
add ebx, ebx
sub ebx, dword [eax + 4]
sub ebx, dword [edi + ecx + 4]
mov dword [esp + 0x1c], ebx
mov ebx, dword [ecx]
add ebx, ebx
sub ebx, dword [edi + ecx]
sub ebx, dword [eax]
lea eax, [edx + ebp]
lea eax, [eax + eax*2]
mov dword [esp + 0x58], ebx
mov edx, dword [esi + eax*4 + 8]
lea ecx, [esi + eax*4]
add edx, edx
mov ebx, dword [esp + 0x10]
sub edx, dword [edi + ecx + 8]
mov eax, ecx
sub eax, edi
sub edx, dword [eax + 8]
mov dword [esp + 0x38], edx
mov edx, dword [ecx + 4]
add edx, edx
sub edx, dword [edi + ecx + 4]
sub edx, dword [eax + 4]
mov dword [esp + 0x48], edx
mov edx, dword [ecx]
add edx, edx
sub edx, dword [eax]
mov eax, dword [esp + 0x40]
sub edx, dword [edi + ecx]
mov dword [esp + 0x3c], edx
mov esi, dword [eax]
mov eax, dword [ebx + esi + 8]
mov edx, dword [ebx + esi - 4]
add eax, eax
mov ebp, dword [ebx + esi + 0x14]
sub eax, edx
mov edi, dword [ebx + esi + 0x10]
sub eax, ebp
mov ecx, dword [ebx + esi - 8]
mov dword [esp + 0x70], eax
mov eax, dword [ebx + esi + 4]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x4c], edi
mov ebx, dword [ebx + esi]
add eax, eax
sub eax, ecx
mov ebp, dword [esp + 0x10]
sub eax, edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x6c], eax
mov eax, dword [esi + ebp - 0xc]
mov esi, dword [esi + ebp + 0xc]
lea ebp, [ebx + ebx]
sub ebp, esi
mov esi, dword [esp + 0x40]
sub ebp, eax
mov dword [esp + 0x50], ebp
lea ebp, [edx + edx]
mov edx, dword [esi]
sub ebp, dword [edi + edx - 0x10]
mov edx, dword [edi + edx + 8]
mov dword [esp + 0x20], ebp
lea ebp, [ecx + ecx]
mov ecx, dword [esi]
sub dword [esp + 0x20], edx
sub ebp, dword [edi + ecx - 0x14]
mov ecx, dword [edi + ecx + 4]
mov dword [esp + 0x18], ebp
lea ebp, [eax + eax]
mov eax, dword [esi]
sub dword [esp + 0x18], ecx
sub ebp, dword [edi + eax - 0x18]
sub ebp, ebx
mov dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x34]
add ebp, ebp
sub ebp, dword [edi + eax + 0x20]
mov edi, dword [esp + 0x4c]
sub ebp, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x34], ebp
lea ebp, [edi + edi]
mov esi, dword [edx + eax + 0xc]
sub ebp, dword [edx + eax + 0x1c]
sub ebp, ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
lea edi, [esi + esi]
sub edi, dword [edx + eax + 0x18]
mov eax, dword [esp + 0x48]
sub edi, ebx
imul eax, eax
add eax, ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
add eax, ecx
mov ecx, dword [esp + 0x1c]
cdq
sub eax, edx
imul ecx, ecx
mov esi, eax
mov eax, dword [esp + 0x28]
imul eax, eax
sar esi, 1
add eax, ecx
mov ecx, dword [esp + 0x58]
imul ecx, ecx
add eax, ecx
mov ecx, dword [esp + 0x18]
cdq
sub eax, edx
sar eax, 1
add esi, eax
mov eax, dword [esp + 0x5c]
imul eax, eax
add esi, eax
mov eax, dword [esp + 0x60]
imul eax, eax
add esi, eax
mov eax, dword [esp + 0x64]
imul eax, eax
add esi, eax
mov eax, dword [esp + 0x68]
imul eax, eax
imul ecx, ecx
imul edi, edi
imul ebp, ebp
add eax, ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
add edi, ebp
add eax, ecx
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esp + 0x34]
imul eax, eax
sar ecx, 1
add eax, edi
cdq
sub eax, edx
sar eax, 1
add ecx, eax
mov eax, dword [esp + 0x6c]
imul eax, eax
add ecx, eax
mov eax, dword [esp + 0x70]
imul eax, eax
add ecx, eax
mov eax, dword [esp + 0x50]
imul eax, eax
add ecx, eax
cmp esi, ecx
setle al
lea edx, [eax*2 + 2]
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
add dword [esp + 0x10], 0xc
mov eax, dword [ebx + 0x18]
or byte [eax + ecx], dl
inc ecx
mov esi, dword [ebx + 0x58]
mov edx, dword [esp + 0x30]
inc edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], edx
movzx eax, word [esi + 0x1e]
cmp edx, eax
lea edx, [ebx + 0x1c]
jl 0x1017d441
mov ecx, dword [esp + 0x2c]
mov edx, esi
movzx eax, word [esi + 0x1c]
inc ecx
mov dword [esp + 0x2c], ecx
cmp ecx, eax
jl 0x1017d410
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb4
ret